- 1、本文档共127页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 菜单和工具栏设计
第5章 菜单和工具栏设计 5.1创建和编辑菜单 5.2 加速键 5.3 动态更改菜单 5.4 使用上下文菜单 5.5 工具栏设计 5.6 提高实例――带有工具栏的画图程序 5.1创建和编辑菜单 菜单是Windows应用程序中一个必不可少的用户界面资源,菜单的风格直接影响应用程序是否美观,所以设计菜单非常重要。而从编程的角度讲,菜单是应用程序中可操作命令的集合,体现了程序的功能,当选择某一菜单项时就会执行指定的程序代码,完成相应的功能。Visual C++集成开发环境提供了一个可视化菜单资源编辑器,用于菜单的编辑和添加,使用起来非常方便。 5.1.1定义菜单 1.菜单资源编辑器 在创建一个SDI单文档应用程序后,在项目工作区的Resource View页面中选择Menu并展开,然后双击下面的IDR_MAINFRAME项就会弹出菜单资源编辑器,显示应用程序向导所创建的菜单资源,如图51所示。 从上图可以看出默认生成的主菜单共包含四个主菜单项,分别实现不同的功能,每个主菜单下都分别包含和该菜单相关联的子菜单。用户在实现特定功能的时候需要添加新的菜单命令,可以添加在图中“空白主菜单项”或者“空白子菜单项”的位置,分别表示主菜单功能或者某主菜单下的下一级子菜单功能。 2.添加菜单项 在打开菜单资源编辑器以后,就可以为程序添加自己的菜单项了,方法是直接用鼠标右键单击图5-1中的“空白菜单项”部分,然后从弹出的快捷菜单中选择“Proterties”菜单命令,就可以弹出如图5-2所示的菜单属性对话框。 在该对话框中,用户可以根据需要设置菜单的属性,下表中给出各个属性的说明: 3.菜单实例演示 例5-1:编写一个单文档应用程序MenuTest,为程序添加一个“测试”主菜单,并在其中添加“画圆”和“输出文本”两个菜单项。 编程实现步骤说明: (1)利用MFC App Wizard向导生成单文档(SDI)应用程序MenuTest。在项目工作区的资源页面中选择Menu并展开,再双击IDR_MAINFRAME项弹出菜单资源编辑器,按图5-2添加“测试(T)”主菜单,该菜单没有相应的ID标识。 (2)添加好主菜单后,就可以添加下一级子菜单了。回到菜单编辑器,在刚建好的主菜单“测试(T)”下方双击带虚框的空白子菜单项,在属性对话框中添加子菜单“画圆(C)\tCtrl+D”,ID为“ID_DRAW_CIRCLE”,提示栏中输入程序运行时状态栏上的提示信息“在客户区中画一个圆”。按同样的步骤为菜单添加菜单项“输出文本(T)\tCtrl+T”,ID为“ID_OUTPUT_TEXT”,提示信息为“在客户区输出一行文字”,如图5-4所示。 程序说明: 在步骤(2)中添加的菜单“画圆(C)\tCtrl+D”,“\t”使后面的内容右对齐,Ctrl+D表明该菜单项的快捷键,但此处仅起到提示作用,要真正成为快捷键还需要使用快捷键编辑器,在5-2节将详细介绍此功能。 5.1.2编写菜单事件处理程序 1.添加消息处理函数 在例5-1中,我们仅仅添加了菜单,并没有实现相应的菜单功能,即没有给菜单项添加消息处理函数,因此,添加的菜单项是灰色的,即处于不可用状态。这时可以利用Class Wizard类向导添加菜单命令的WM _COMMAND消息处理函数,在函数中添加代码完成对应的功能。下面给出对应菜单功能实现的具体步骤: (1)单击“查看|建立类向导…”命令,或者使用快捷键“Ctrl+W”打开MFC ClassWizard对话框,单击“Message Maps”选项卡,可以看到5个列表框。Project框列出当前工作区中的项目,Class name框列出当前项目的类,这两个框是下拉列表框;Object IDs框列出当前所有能接收消息的对象(ID),包括类、菜单项和控件;Messages框列出Object IDs框中选择的对象可处理的消息和重载的MFC虚函数;Member functions框列出当前已创建的消息处理函数,其中的“V”标记表示该函数是虚函数,“W”标记表示该函数是窗口消息处理函数。 (2)在“Project”下拉列表框中选择“MenuTest”,在“Class name”下拉列表框中选择“CMenuTestView”。在“Object IDs”下拉列表框中选择要添加响应控件的ID,这里选择“ID_DRAW_CIRCLE”。在“Message”项中出现了两种类型的消息COMMAND(用于菜单命令)和UPDATE_COMMAND(用于更新菜单状态),这里我们选择的是COMMAND消息。单击“Add Function…”按钮,再单击“OK”按钮就可以创建一个消息的处理函数OnDrawCircle
您可能关注的文档
- 威胁计算机网络安全的一些问题.doc
- 第8章 Web系统和无线网安全.ppt
- 网络设备管理与VPN技术.ppt
- windows server2003 服务器管理 ppt.ppt
- 第6章 VPN技术.ppt
- 计算机网络基础试卷二及答案.doc
- 自顶向下方法与互联网特色.doc
- 《数控铣削编程与加工技术》测试试卷1.doc
- 华中世纪星HNC-2M系统的编程与操作.ppt
- FANUCOi-M系统的编程与操作.pptx
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)