菜单、工具栏和状态栏讲述.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ICON与位图相似,用于存放系统中用到的所有的图标。 * 当选择Image-NewItemType时,将跳出对图标属性的设置。 版本信息 用于设置和显示软件的相关版本信息。 * 可修改某些项或者添加,删除一些已知项。 * 为菜单的消息处理函数添加代码 void CMainFrame::OnUpdateLine(CCmdUI *pCmdUI) { pCmdUI-SetCheck(0); if(type==1) { pCmdUI-SetCheck(1); pCmdUI-Enable(FALSE); } } * 运行程序,选择矩形菜单,点击了弹出对话框的“确定”按钮,再单击“画图”菜单项的状态 * 我们平时在使用程序时,经常会用到单击鼠标右键显示的快捷菜单,也称为上下文菜单,或右键菜单。 显示快捷菜单需要使用CMenu::TrackPopupMenu()函数 CMenu::TrackPopupMenu函数的原型为:? BOOL TrackPopupMenu(UINT nFlags,int x,int y,CWnd* pWnd,LPCRECT lpRect=NULL);? 该函数的功能是显示一个右键快捷菜单。其中,nflags表示屏幕位置标志。x、y分别表示菜单的水平坐标和顶端的垂直坐标;pWnd表示弹出菜单的窗口,包括全部的WM_COMMAND消息;lpRect表示一个矩形域,当单击这个矩形域时菜单不消失。 * * 参数nflags的含义 为程序添加一个快捷菜单,显示“画图”菜单对应的弹出菜单 添加菜单资源 在项目工作区窗口中选择“资源视图”,在“Menu”项目上单击鼠标右键,选择“插入Menu”,向应用程序添加一个新的菜单资源,缺省的ID号为IDR_MENU1,编辑菜单。为该菜单资源中的顶层菜单的第一项加一任意标题(实际上该标题无用),在此菜单项下依次添加菜单项设置 “直线”和“矩形”菜单项的ID与IDR_MAINFRAME中相应的菜单相同,也可以在ID的下拉列表框中,分别选择“ID_LINE”和“ID_RECTANGLE”。 * 建立消息映射,编辑响应函数 快捷菜单通常都不涉及这样的操作,因为快捷菜单中显示的菜单项在程序的主菜单中都可以找到,只要在第一步中,将快捷菜单中菜单项的ID选为主菜单中相应菜单项的ID即可,这样就将快捷菜单中的菜单项就与主菜单中相应的菜单项关联到同一响应函数了。 在CVIEW类中加入WM_CONTEXTMENU消息的处理函数 选择“Cview”类的“消息窗口”,建立“WM_CONTEXTMENU”消息的响应函数“OnContextMenu”。 * 编辑WM_CONTEXTMENU消息处理函数 编辑OnContextMenu函数如下,因为函数中要用到参数point,故要去掉其注释: { CMenu menu; menu.LoadMenuW(IDR_MENU1); menu.GetSubMenu(0)- TrackPopupMenu( TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x,point.y, AfxGetMainWnd() ); } * * 运行程序,界面如下 编程方法给系统菜单添加一个菜单项 例 向应用系统菜单中添加一个菜单项。 (1)打开一个单文档应用程序项目,若没有可按前面提及的方法进行创建。 (2)选择资源中的String Table 。 (3)单击[New],在Name框中,可以指定一个用于菜单项的ID号,输入“ID_NEW_MENUITEM”。在Value框中,可以定义该ID的值,选择默认的ID值101,单击[OK]按钮,caption 输入“新建菜单项”。 String Table也称为串表,用于实现对字符串资源的ID和Caption等的设置。 * (4)在CMainFrame::OnCreate函数体(或自定义的函数)中加入代码: { ... CMenu* pSysMenu = GetMenu(); // 获得主菜单句柄 CMenu* pSubMenu = pSysMenu-GetSubMenu(1); // 获得第二个子菜单的句柄 CString StrMenuItem(新的菜单项); pSubMenu-AppendMenu(MF_SEPARATOR); // 增加一水平分隔线 pSubMenu-AppendMenu(MF_STRING, ID_NEW_MENUITEM,StrMenuItem); // 允许使用ON_UPD

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档