vc++ MFC菜单编程
VC++ MFC 菜单编程知识点总结 VC++ MFC 菜单编程是指在 VC++ 中使用 MFC 创建菜单并进行菜单编程的方法。菜单结构中,一个菜单栏可以有多个子菜单,每个子菜单又可以有多个菜单项。对菜单栏的子菜单由左至右建立从 0 开始的索引,对特定子菜单的菜单项由上至下建立了从 0 开始的索引。访问子菜单和菜单项均可以通过其索引或标识(如果有标识的话)进行。 在 MFC 中,菜单项消息的响应顺序为 View 类 - Doc 类 - CMainFrame 类 - App 类。如果菜单消息在其中一个类中响应,则不再在其他类中查找响应函数。 以下是 MFC 菜单编程中的一些重要函数: 1. CMenu* GetMenu( ) ;// 得到菜单指针 2. CMenu* GetSubMenu( ) ;// 得到子菜单指针,也就是弹出菜单指针 3. UINT CheckMenuItem( );// 将菜单项加上或去掉√(对号)标记 4. BOOL SetDefaultItem();// 设置缺省菜单项,也就是将菜单项粗体显示 5. BOOL SetMenuItemBitmaps( );// 设置位图标记,标记大小为 13*13 像素 6. UINT EnableMenuItem();// 使菜单项有效,无效,或变灰 7. BOOL SetMenu( CMenu* pMenu );// 在当前窗口上设置新菜单或移除菜单。 8. HMENU Detach( );// 如果将 CMenu 对象设置为局部对象,使用 Detach() 从 menu 对象中分离窗口菜单句柄,从而当 menu 对象析构的时候窗口菜单资源不随之销毁 在实现菜单操作时,可以在 CMainFrame 中的 OnCreate 函数里初始化菜单项。例如,添加对号标记可以使用 GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED ); 方法或 GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_NEW,MF_BYCOMMAND | MF_CHECKED ); 方法。设置缺省菜单项可以使用 GetMenu()->GetSubMenu(0)->SetDefaultItem(1,true); 方法或 GetMenu()->GetSubMenu(0)->SetDefaultItem(ID_FILE_OPEN,false); 方法。添加图形标记可以使用 CBitmap bitmap; 方法。 在菜单编程中,需要注意菜单消息的响应顺序和截断菜单消息路由的问题。在 frame 类中添加虚函数 oncommand ( wParame, ) 可以截断菜单消息路由,其中 wPareme 的低字节保存了菜单的 ID,可以根据 ID 判断有用的消息来处理,处理完后加上 return true; 就截断了此 ID 的消息路由,其他菜单的消息路由正常。
剩余8页未读,继续阅读
- yujiaming1192014-05-02基本设计了菜单的设计,很符合要求
- graypray2012-05-08菜单的添加,子菜单(下拉菜单)的添加、插入,下拉菜单项中单个项的右边显示菜单的编写语言都有讲到,不错
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助