MFC 中提供三种方法来响应添加右键菜单功能,即三种消息响应函数WM_RBUTTONDOWN或RBUTTONUP WM_CONTEXMENU
在这里我用WM_RBUTTONDOWN实现这个功能。
首先必须在资源编辑窗口新建菜单比如命名为IDM_MENU1
然后在子菜单响应消息如下 作为测试
void CRightMenuDlg::OnMenu1()
{
// TODO: Add your command handler code here
MessageBox("menu1 test");
}
void CRightMenuDlg::OnMenu2()
{
// TODO: Add your command handler code here
MessageBox("menu2 test2");
打开属性编辑栏,在对话框添加picture控件,这样可以在这个控件区域内响应鼠标右键菜单消息,我把这个控件取名为IDC_STATIC_TEST
如何所示
工程右边打开class view,
选中类如果是对话框的话选中**dlg类然后右键选择Add windows message handle 如图所示
找到WM_RBUTTONDWON 选择Add Handle 然后 选择Edit Existing 就直接进入编辑
接下来编辑代码如下:
void CRightMenuDlg::OnRButtonDown(UINT nFlags, CPoint point)
然后运行最终效果如下:
在控件内右键鼠标,弹出菜单选中第一个结果如下