第5章菜单工具栏和状态栏

第5章菜单工具栏和状态栏

ID:42164502

大小:401.00 KB

页数:51页

时间:2019-09-09

第5章菜单工具栏和状态栏_第1页
第5章菜单工具栏和状态栏_第2页
第5章菜单工具栏和状态栏_第3页
第5章菜单工具栏和状态栏_第4页
第5章菜单工具栏和状态栏_第5页
资源描述:

《第5章菜单工具栏和状态栏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第5章菜单、 工具栏和状态栏1教学目标了解菜单、工具栏和状态栏的概念及相关类的基本操作;掌握Windows编程中资源的使用;能够在单文档和对话框应用程序中编程实现常用的菜单、工具栏和状态栏。25.1菜单菜单概述用编辑器设计菜单菜单类CMenu快捷菜单的设计与使用示例3菜单菜单是Windows中最常见的界面元素,是一系列命令的列表。菜单分为两种:下拉菜单快捷菜单(上下文菜单)加速键是键盘上的一个键或几个键的组合,它通常对应于某一条菜单命令或工具按钮命令,它为用户提供了一种快速执行菜单命令或其他某种功能的方法。4使用菜单编辑器,可以增加或删除菜单和菜单项,定义菜

2、单标识符ID,对菜单进行合理布局,设置菜单的初始状态(正常、灰色、加标记等)设置菜单提示等。使用AppWizard创建基于SDI的应用程序框架时,会自动创建一个菜单资源:IDR_MAINFRAME使用AppWizard创建基于MDI的应用程序框架时,会自动创建两个菜单资源:IDR_MAINFRAME和IDR_***TYPE(星号表示项目名)在菜单编辑器中,可以对AppWizard生成的菜单进行修改,也可以从空白菜单基础上创建需要的菜单用编辑器设计菜单5创建下拉菜单的步骤:创建菜单资源打开菜单编辑器,编辑菜单:在菜单栏中双击空白方框,弹出[MenuItemPr

3、operties]对话框,设置菜单项属性。为菜单资源选择一个类(视图类或对话框类)建立菜单命令消息处理函数WM_COMMAND:选择菜单项或使用快捷键时将产生此消息UPDATE_COMMAND_UI:更新命令用户接口消息,当菜单在显示之前,会先通过此消息进行更新,从而得到更新后的菜单。6【例5.1】单文档应用程序中菜单的创建和使用在单文档应用程序的默认菜单资源中添加一个“绘图”菜单,通过“绘图”菜单命令在窗口中绘制出不同的椭圆和矩形,程序的运行效果如图所示。7步骤:1、创建一个基于SDI的应用程序,项目名为:EX5_12、在项目工作区的[ResourceVi

4、ew]中,双击菜单资源[IDR_MAINFRAME],打开菜单资源编辑器。3、在[帮助]菜单前插入一个新菜单[绘图(&D)],并为其添加相应的菜单项,如图所示Alt+D激活该菜单8菜单属性设置CaptionID提示(Prompt)椭圆Pop-up矩形Pop-up清除(&C)ID_DRAW_CLEAR清除窗口中的图形100*100ID_DRAW_ELLIPSE1绘制一个外接矩形为100*100的椭圆100*200ID_DRAW_ELLIPSE2绘制一个外接矩形为100*200的椭圆100*100ID_DRAW_RECT1绘制一个100*100的矩形100*20

5、0ID_DRAW_RECT2绘制一个100*200的矩形94、为菜单资源选择一个类CEX5_1View5、使用[MFCClassWizard],为视图类CEX5_1View添加菜单消息处理函数.ObjectIds消息消息处理函数ID_DRAW_CLEARCOMMANDOnDrawClear()ID_DRAW_ELLIPSE1COMMANDOnDrawEllipse1()ID_DRAW_ELLIPSE2COMMANDOnDrawEllipse2()ID_DRAW_RECT1COMMANDOnDrawRect1()ID_DRAW_RECT2COMMANDOnDr

6、awRect2()106、为消息处理函数添加代码绘制一个外接矩形为100*100的椭圆voidCEX5_1View::OnDrawEllipse1(){//TODO:AddyourcommandhandlercodehereCDC*pDC=GetDC();//获取窗口设备环境CRectr,rect;//定义矩形类对象GetClientRect(&r);//获取客户区窗口坐标范围rect.bottom=r.bottom/2+50;//设置rect的范围rect.top=r.bottom/2-50;rect.right=r.right/2+50;rect.lef

7、t=r.right/2-50;pDC->Ellipse(rect);//在rect指定的范围内画椭圆}r.bottom505011绘制一个100*100的矩形voidCEX5_1View::OnDrawRect1(){//TODO:AddyourcommandhandlercodehereCDC*pDC=GetDC();//获取窗口设备CRectr,rect;//定义矩形类对象GetClientRect(&r);//获取客户区窗口坐标范围rect.bottom=r.bottom/2+50;//设置rect的范围rect.top=r.bottom/2-50;r

8、ect.right=r.right/2+50;rec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。