标签:mfc 菜单
第8章 菜单的建立
主要内容
建立和使用菜单
菜单的种类:
1:下拉菜单;
2:快捷菜单,又称弹出菜单或右键菜单;
3:系统菜单,又称控制菜单。
菜单和菜单项
菜单和菜单项的关系类似于文件夹和文件。真正实现具体功能的是菜单项,如:“新建”、“打开”、“保存”等;而菜单的作用则是容纳一组相关的菜单项,如“文件”菜单,“编辑”菜单。
菜单资源的建立
1:创建”Resource Script“文件;
2:在”ResourceView“中插入新菜单;
3:修改菜单ID(可选);
4:创建菜单资源中的菜单项:
菜单只需要设置”Caption“选项,并需要选中”Pop-up“ 选项;
菜单项需要设置”ID“和”Caption“两项。要注意的是,如果菜单项想使用系统提供的ID,如退出程序”ID_APP_EXIT“,必须要在下拉列表里面选,不可以自己输,否则会资源ID重复定义的错误。
普通菜单的操作
一:菜单的载入
方法1:利用CFrameWnd::Create()方法。
Create方法声明(详见第2章)
BOOL virtual CFrameWnd::Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle = WS_OVERLAPPEDWINDOW, const RECT &rect = rectDefault, CWnd *pParentWnd = NULL, LPCTSRT lpszMenuName = NULL, DWORD dwExStyle = 0, CCreateContext *pContext = NULL)
其中的参数lpszMenuName就是一个定义在资源文件(RC文件)中的菜单名称。注意:如果要以菜单的资源ID代表菜单,要使用如下方式:MAKEINTRESOURCE(菜单资源ID)。
方法2:利用CMenu对象。
操作步骤:
1:声明CMenu对象。
2:利用CMenu.LoadMenu(菜单资源ID )载入菜单。
3:利用CFrameWnd::SetMenu(CMenu*)方法为视窗框架对象绑定菜单。
如:
class MyFrame : public CFrameWnd { private: CMenu *pMenu; public: MyFrame() { Create(NULL, "My Frame"); pMenu = new CMenu; pMenu->LoadMenu(IDR_MENU1); SetMenu(pMenu); } };
系统菜单的操作
未完待续。。。
标签:mfc 菜单
原文地址:http://3677403.blog.51cto.com/3667403/1657102