Windows编程基础–第10节 MFC菜单
MFC菜单(CMenu)
MFC菜单分为两类:
窗体菜单
快捷菜单:又叫弹出菜单,或者上下文菜单
1、创建项目
打开vs2010,创建一个基于对话框的项目,项目名“day10”,注意这次主框架中就不要勾选“系统菜单”和“关于框”了,如图:
创建好后,删除自动生成的文本控件,如图:
2、创建系统菜单
切换到资源视图,右击我们的项目“day10”,选择添加资源,出现如下界面:
选择“Menu”点击新建,然后就可以看到我们的项目中Menu目录,这里就存放菜单资源,展开后就可以看到,我们刚添加的菜单ID,双击打开;
我们可以直接输入想要添加的菜单选项,如图:
我们可以在资源视图右击菜单ID,然后选择属性,修改ID为IDR_MENU_SYSTEM;
3、显示系统菜单
我们打开刚才创建的主窗口,右击打开属性,在属性列表找到MENU属性,下拉框选择刚才创建的IDR_MENU_SYSTEM菜单,如图所示:
这时主窗口就和IDR_MENU_SYSTEM菜单关联起来了,运行看看效果:
4、创建菜单消息事件
我们切换到我们创建的菜单界面,来实现菜单中保存选项的处理事件,在“保存”选项上右击,选择“添加事件处理函数”,如下:
,出现如下添加事件界面:
这里我们类列表中选择Cday10Dlg中创建操作函数,函数名修改为OnMenuSaveClick,点击“添加编辑”,添加处理函数;
1 | void Cday10Dlg::OnMenuSaveClick() |
运行效果,点击“文件”->“保存”,此时就会弹窗提示“””文件已保存!”,如图所示:
5、创建快捷菜单
切换资源视图,
选择“Menu”点击“插入MENU”,自动打开;我们可以直接输入想要添加的菜单选项,如图:
注意:快捷菜单中最上面的“快捷菜单”不会显示,名字可以随意。
修改次menu的ID为IDR_MENU_QUICK;
6、显示快捷菜单
我们打开刚才创建的主窗口,右击打开属性,在属性列表上方选择“消息”按钮,找到“WM_OnContextMenu”,选择add OnContextMenu方法,如图所示:
1 | void Cday10Dlg::OnContextMenu(CWnd* pWnd, CPoint point) |
这段代码的意思就是:先试图加载IDR_MENU_QUICK菜单,加载成功之后,将菜单显示在鼠标右击(TPM_RIGHTBUTTON),靠左方(TPM_LEFTALIGN)的位置;
运行效果:
可以看见,菜单已经显示出来;
7、创建菜单消息事件
同步骤4,如图:
编辑OnCopy函数,如下:
1 | void Cday10Dlg::OnCopy() |
效果图: