MFC--右键弹出菜单
2017-03-30 15:49
218 查看
文章转自:http://blog.csdn.net/shengwenj/article/details/48955053
步骤:添加菜单资源->增加对WM_RBUTTONDOW消息的响应
1、添加菜单资源
添加菜单,如IDR_MENU1;打开IDR_MENU1右键点击后勾选“以弹出方式查看”;给要添加的菜单项命名,注意顶级菜单不会显示,随便命名一个,将要弹出的内容在下级菜单中依次命名。
2、在CMyview类中增加对消息WM_RBUTTONDOW的响应函数OnRButtonDown;
在OnRButtonDown中:
CMenu menu;
menu.LoadMenuW(IDR_MENU1);//加载菜单,menu不需要是全局的,因为只要右击鼠标时做该操作就行
ClientToScreen(&point);//将屏幕坐标转换为客户坐标,因为GetSubMenu函数的第二、三个参数是屏幕坐标,但point是客户坐标
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, point.x, point.y, GetParent());//创建一个浮动的菜单
注意第四个参数如果是this,则CMainFrame类不能响应菜单项命令消息,只有CMyview类可以,所以用GetParent()可以是两类都有机会响应菜单项命令消息(CMyview类先得到响应机会)
关于TrackPopupMenu函数参数信息参考 http://blog.csdn.NET/fakine/article/details/7910689
步骤:添加菜单资源->增加对WM_RBUTTONDOW消息的响应
1、添加菜单资源
添加菜单,如IDR_MENU1;打开IDR_MENU1右键点击后勾选“以弹出方式查看”;给要添加的菜单项命名,注意顶级菜单不会显示,随便命名一个,将要弹出的内容在下级菜单中依次命名。
2、在CMyview类中增加对消息WM_RBUTTONDOW的响应函数OnRButtonDown;
在OnRButtonDown中:
CMenu menu;
menu.LoadMenuW(IDR_MENU1);//加载菜单,menu不需要是全局的,因为只要右击鼠标时做该操作就行
ClientToScreen(&point);//将屏幕坐标转换为客户坐标,因为GetSubMenu函数的第二、三个参数是屏幕坐标,但point是客户坐标
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, point.x, point.y, GetParent());//创建一个浮动的菜单
注意第四个参数如果是this,则CMainFrame类不能响应菜单项命令消息,只有CMyview类可以,所以用GetParent()可以是两类都有机会响应菜单项命令消息(CMyview类先得到响应机会)
关于TrackPopupMenu函数参数信息参考 http://blog.csdn.NET/fakine/article/details/7910689
相关文章推荐
- MFC: 右键弹出菜单-->选取菜单弹出窗口
- MFC操作——右键弹出菜单事件
- MFC里右键弹出菜单
- VS2013 MFC右键弹出菜单
- MFC-右键弹出菜单
- VS2010 MFC 右键弹出菜单及显示图标
- MFC(对话框鼠标右键弹出菜单)
- MFC为应用程序添加托盘(右键托盘,弹出菜单)
- MFC之右键点击listctrl控件弹出菜单
- MFC为应用程序添加托盘(右键托盘,弹出菜单)
- MFC中如何添右键弹出菜单
- MFC右键弹出菜单的创建
- MFC TreeCtrl树形控件中限定右键点击节点弹出菜单
- MFC为应用程序添加托盘(右键托盘,弹出菜单)
- MFC学习笔记.day03-菜单,图形标记菜单创建,菜单栏禁用,命令响应,右键弹出菜单,添加菜单
- MFC制作右键弹出菜单 指定位置
- MFC创建右键弹出菜单,运行点击右键后出现系统崩溃
- MFC右键弹出菜单
- MFC 右键弹出菜单
- MFC创建右键弹出菜单的方法