已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
菜单、工具栏实验报告2011年4月6日一、 实验目的1、掌握菜单的实现机制和创建过程2、掌握普通下拉菜单和上下文菜单的创建3、掌握工具栏的创建和消息处理过程二、 实验内容本节主要掌握菜单、工具栏的使用方法,内容包括菜单的创建和使用、工具栏的创建和使用。例1. 要求创建一个应用程序,实现在客户区绘制椭圆和矩形的功能。为应用程序添加一个“图形”菜单项,该菜单项包含两个子菜单“椭圆”和“矩形”。步骤:(1) 用AppWizard创建一个基于MFC的SDI应用程序,工程名为ex61。(2) 在ResourceView页面中,双击Menu文件夹,可以看到一个ID为ID_MAINFRAME的菜单,此菜单为应用程序的主菜单。双击ID_MAINFRAME菜单,进入菜单编辑器,在编辑框窗口中出现菜单栏。(3) 菜单项的添加:1)“图形”菜单项的添加。在ID_MAINFRAME菜单的最右端有一个空的菜单项,双击该菜单项弹出该菜单项的属性对话框,在该对话框中,选定弹出(pop-up),表示本菜单项中包含弹出子菜单,在标明(caption)编辑框中输入该菜单项的标题“图形”,使该菜单项下产生一个空的子菜单项。2)添加“椭圆”和“矩形”子菜单项。双击“图形”菜单项下的空子菜单,其属性对话框中各项为:(4) 增加“椭圆”和“矩形”的消息处理1)利用ClassWizard为ID_ELLIPSE在CEx61View类中添加消息映射,如下图。双击COMMAND弹出对话框,要求在该对话框中输入消息处理函数的名称,选择默认函数名,确定后,双击消息处理函数OnEllipse进行编辑(矩形同样进行编辑,消息处理函数为OnRectangle),代码如下: void CEx61View:OnEllipse() /椭圆画图/ TODO: Add your command handler code hereInvalidate();UpdateWindow();CDC *pDC=GetDC();pDC-Ellipse(100,100,200,200);void CEx61View:OnRectangle() /矩形画图/ TODO: Add your command handler code hereInvalidate();UpdateWindow();CDC *pDC=GetDC();pDC-Rectangle(100,100,200,200);(5) 给“椭圆”和“矩形”子菜单添加UPDATE_COMMAND_UI消息,并在消息处理函数中实现在选中的子菜单项前打钩。UPDATE_COMMAND_UI消息的添加和WM_COMMAND消息类似。在上图中,在Messages中选择UPDATE_COMMAND_UI即可。消息处理函数为:Void CE61View:OnUpdateEllipse(CCmdUI* pCmdUI)pCmdUI-SetCheck(flag=0); Void CE61View:OnUpdateRectangle(CCmdUI* pCmdUI)pCmdUI-SetCheck(flag=1); 例2. 用上下文菜单实现例1的功能。创建上下文菜单的步骤如下:(1) 创建一个新菜单资源。用AppWizard创建一个基于MFC的SDI应用程序,工程名为ex62。在工作区的ResourceView选项卡中,右击Menu文件夹,在弹出菜单中选择插入菜单便可创建一个新的菜单资源,其ID为IDR_MENU1。右击IDR_MENU1,在弹出菜单中选择属性,修改其ID为IDR_POPMENU。双击IDR_POPMENU资源进入编辑对话框,对弹出式菜单进行编辑,方法见例1,完成后的菜单资源如图:(2) 添加代码,实现鼠标右键单击时显示弹出式菜单。在查看菜单项中选择建立类向导来添加右键单击弹出式菜单WM_CONTEXTMENU及消息处理函数,这时MFC会发现创建了一个新资源,将询问是否创建一个新类,取消后,弹出下图对话框,选择ID为CEx62View,Messages为WM_CONTEXTMENU,双击该消息或单击Add Function按钮,将为该消息添加默认处理函数,单击Edit Code按钮进入OnContextMenu()函数,对其进行编辑。在相应的消息处理函数中添加代码如下:void CEx62View:OnContextMenu(CWnd* pWnd, CPoint point) / TODO: Add your message handler code hereCMenu menu;menu.LoadMenu(IDR_POPMENU);menu.GetSubMenu(0)-TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,point.x,point.y,AfxGetMainWnd();(3) 为“椭圆”和“矩形”子菜单添加WM_COMMAND和UPDATE_COMMAND_UI消息映射,并编辑相应的消息处理函数;具体方法同例1。 修改例1,增加工具栏按钮的步骤如下:打开工程ex61,在ResourceView页面中,双击Toolbar文件夹,可以看到有一个ID位ID_MAINFRAME的工具栏。双击ID_MAINFRAME工具栏,在工具栏编辑框中出现如下图所示的工具栏。在工具栏的最右边有一空白按钮,双击该按钮,弹出对话框如下图,其中ID选择ID_ELLIPSE,即“椭圆”按钮。该按钮显示在编辑窗口中,可以通过Graphics
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一节 理解父母教学设计初中心理健康七年级下册北京版
- Unit 21 A very big cat教学设计小学英语3B新概念英语(青少版)
- 高中地理 第六章 人类与海洋协调发展 第3节 维护海洋权益 加强国际合作教学设计 新人教版选修2
- 初中数学人教版(2024)七年级下册(2024)7.2.1平行线的概念教学设计
- 慢性乙型肝炎(大三阳)护理查房
- 初中人教版(2024)学会自我保护公开课教学设计
- 第3课 横折教学设计小学书法练习指导三年级下册西泠版
- 2026年巡察脱贫攻坚知识测试题及答案
- 2026年春天野草长测试题及答案
- 2026年管理综合素质测试题及答案
- 2026中国中式餐饮白皮书-
- 收藏品交易合同标准格式模板
- GB/T 21508-2025燃煤烟气脱硫设备性能测试方法
- 商场商户撤场协议书
- 矿山救护队安全生产月活动方案
- 评估咨询服务合同范本
- 2022年中国人民公安大学公共课《马克思主义基本原理概论》期末试卷B有答案
- IT项目敏捷开发流程标准
- JJG 667-2025液体容积式流量计检定规程
- 保洁主管笔试试题及答案
- 肿瘤随访培训试题及答案
评论
0/150
提交评论