08_菜单__mfc.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08_菜单__mfc.ppt

菜单 参考书 《MFC Windows 程序设计》第4章 菜单基础 顶层菜单,下拉菜单 弹出式菜单(上下文菜单) 系统菜单 添加下拉菜单步骤 在资源中修改(添加)菜单,设置其ID 设置其快捷键 通过菜单名称名称某个字符前加‘’,以添加Alt型快捷键 通过在资源中Accelerator来添加快捷键 添加响应函数处理消息COMMAND与UPDATE_COMMAND_UI 菜单COMMAND消息负责调用菜单的命令 菜单UPDATE_COMMAND_UI消息负责更新菜单 CCmdUI项的方法 各种菜单选项 创建层叠菜单方法 创建分隔栏 代码示例 程序Shapes 弹出式菜单 建立菜单资源,设其ID为IDR_MENU1 添加消息WM_CONTEXTMENU(鼠标右击时响应)。 在响应函数中可加入如下代码 CMenu popmenu; popmenu.LoadMenu(IDR_MENU1); popmenu.GetSubMenu(0)-TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y, AfxGetMainWnd ()); TrackPopupMenu BOOL TrackPopupMenu(UINT nFlags, int x, int y,CWnd* pWnd, LPCRECT lpRect = 0); x,y说明菜单显示的位置(屏幕坐标) nFlags:说明哪些键可以选中菜单中菜单项(TPM_LEFTBUTTON,TPM_RIGHTBUTTON)及菜单相对于x的位置(TPM_LEFTALIGN,TPM_CENTERALIGN,TPM_RIGHTALIGN) pWnd:确定哪个窗口能够接收菜单中各种操作所引发的消息 lpRect:确定一个矩形,在这个矩形中单击鼠标不会取消菜单,如果为NULL(默认),则在菜单外点击会取消菜单。 手工编程创建菜单 CMenu::CreateMenu:创建顶层菜单 CMenu::CreatePopMenu:创建弹出式菜单 CMenu::AppendMenu:在菜单尾部添加菜单项(或子菜单) CMenu::InsertMenu:在菜单给定位置插入一个菜单项 CMenu::ModifyMenu:改变菜单项的命令ID、正文或其他特性 CMenu::DeleteMenu:删除菜单项 GetMenu():获取顶层菜单的CMenu指针 CMenu::GetSubMenu():获得子菜单 代码示例1 在int CMainFrame::OnCreate()后加入下面代码: CMenu menuMain; menuMain.CreateMenu (); CMenu menuPopup; menuPopup.CreatePopupMenu (); menuPopup.AppendMenu (MF_STRING, ID_APP_EXIT, Exit); menuMain.AppendMenu (MF_POPUP, (UINT) menuPopup.Detach (), File); menuPopup.CreatePopupMenu (); menuPopup.AppendMenu (MF_STRING, ID_CIRCLE, Circle\tF7); menuPopup.AppendMenu (MF_STRING, ID_TRIANGLE, Triangle\tF8); menuPopup.AppendMenu (MF_STRING, ID_RECT, Square\tF9); menuMain.AppendMenu (MF_POPUP, (UINT) menuPopup.Detach (), Shape); SetMenu (menuMain); menuMain.Detach (); 代码示例2 CMenu* pMenu = GetMenu (); pMenu-DeleteMenu (1, MF_BYPOSITION); pMenu-DeleteMenu (ID_SHAPE_CIRCLE, MF_BYCOMMAND); ----------------------------------------------------------------------- pMenu-ModifyMenu (ID_SHAPE_TRIANGLE, MF_STRING | MF_BYCOMMAND, ID_SHAPE_TRIANGLE, Three-Sided Polygon); pMenu-ModifyMenu (2, MF_STRING | MF_BYPOSITION, ID_SHAPE_SQUARE, Four-Sided Poly

文档评论(0)

gshbzl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档