【MFC】VS2013 动态创建快捷菜单(右键菜单)
2016-12-23 15:37
363 查看
参考 http://blog.csdn.net/csdnzhwk/article/details/47395639
参考 http://blog.csdn.net/jiadabin/article/details/22686161
1、创建一个基于对话框的项目
2、在资源头文件(Resource.h),定义命令ID:
3、在需要弹出快捷菜单的地方创建菜单(ParticipateMeeting.cpp)
4、在对话框的头文件(ParticipateMeeting.h)中声明菜单的消息处理函数
5、在对话框的源文件(ParticipateMeeting.cpp)中添加消息映射宏,将命令ID关联到消息处理函数中:
6、在对话框源文件(ParticipateMeeting.cpp)中添加消息处理函数的实现代码:
参考 http://blog.csdn.net/jiadabin/article/details/22686161
1、创建一个基于对话框的项目
2、在资源头文件(Resource.h),定义命令ID:
#define ID_MENUCAT 1109 #define ID_MENUDOG 1110 #define ID_MENUMONKEY 1111 #define _APS_NEXT_CONTROL_VALUE 1112
3、在需要弹出快捷菜单的地方创建菜单(ParticipateMeeting.cpp)
CMenu menu; menu.CreatePopupMenu(); //创建一个弹出菜单 menu.AppendMenu(MF_BYCOMMAND | MF_STRING, ID_MENUCAT, _T("猫")); //添加子菜单项 menu.AppendMenu(MF_SEPARATOR); //分隔线 menu.AppendMenu(MF_BYCOMMAND | MF_STRING, ID_MENUDOG, _T("狗")); menu.AppendMenu(MF_BYCOMMAND | MF_STRING, ID_MENUMONKEY, _T("猴")); CPoint pt; GetCursorPos(&pt); menu.TrackPopupMenu(TPM_LEFTALIGN, pt.x, pt.y, this);
4、在对话框的头文件(ParticipateMeeting.h)中声明菜单的消息处理函数
afx_msg void OnMenuCat(); afx_msg void OnMenuDog(); afx_msg void OnMenuMonkey();
5、在对话框的源文件(ParticipateMeeting.cpp)中添加消息映射宏,将命令ID关联到消息处理函数中:
ON_COMMAND(ID_MENUCAT, OnMenuCat) ON_COMMAND(ID_MENUDOG, OnMenuDog) ON_COMMAND(ID_MENUMONKEY, OnMenuMonkey)
6、在对话框源文件(ParticipateMeeting.cpp)中添加消息处理函数的实现代码:
void ParticipateMeeting::OnMenuCat() { MessageBox(_T("猫菜单被按下!")); } void ParticipateMeeting::OnMenuDog() { MessageBox(_T("狗菜单被按下!")); } void ParticipateMeeting::OnMenuMonkey() { MessageBox(_T("猴菜单被按下!")); }
相关文章推荐
- Objective - C 断言处理
- MATLAB 控制台显示(不用disp函数进行显示)
- Linux中Vi中如何设置encoding
- LeetCode 289---Game of Life
- 高精度减法
- bzoj1013---------算法模板系列(gauss消元)
- tp框架之模板继承
- Node.js中exports与module.exports的区别
- linux根目录系统空间不足时的扩容方法
- cheat安装使用
- [读书笔记]30 天自制操作系统 day11 制作窗口
- ffmpeg学习十:将pcm格式的音频编码为aac格式
- 自定义TimeButton
- Android 7.0 ActivityManagerService(6) Service相关流程分析
- System.err: java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
- Android 多渠道打包 gradle部分,如何处理代码混淆问题
- VC6.0 vs2008 和 VS2010 time_t的一些区别 持续更新
- ios开发之Info.plist文件相关配置
- 3-C++程序的结构1.5
- Java Swing之按钮点击选择文件与获取选中文件绝对路径