《面向对象程序设计》课件 (8).ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章--在MFC中创建应用程序的资源 清华大学计算机与信息管理中心--黄维通 第10章 资源 应用程序可以使用几种不同类型的资源,如菜单、加速键、工具栏、状态条、图标、位图、对话框和字符串等。在MFC中创建应用程序的资源,可以使用可视化的资源编辑器(Resource Editor),在资源编辑器中,程序员可以通过鼠标的拖动来编辑可视化资源,十分方便。 在Windows的可执行文件中,资源是独立于代码的,使用单独的资源编译器进行编译,并嵌入到可执行文件中。在编程过程中,代码是可复用的,资源也是可复用的,通过资源的“导入”和“导出”功能来实现资源的复用。 10.1菜单 在标准的Windows应用程序中,菜单通常有三类:系统菜单、程序主菜单和快捷菜单。 系统菜单提供系统对程序主窗口的管理功能,通常在程序中既不需要控制也不需要改动这种菜单,因此在此不作介绍。 程序主菜单通常位于应用程序的最顶端,大家所熟悉的文件、编辑、查看等菜单就是属于程序的主菜单,其菜单项包含了程序的大部分功能。 快捷菜单在大部分的Windows应用程序中是很常见的。 菜单从形式上分为下拉式和弹出式两种。系统菜单、程序主菜单都是下拉式菜单,下拉式菜单由上层水平列表项以及与其相连的弹出式菜单组成,当用户选择了上层某个列表项时,与之关联的弹出式菜单就会出现,而且可以形成级联菜单。快捷菜单属于弹出式菜单,可以出现在屏幕的任何位置。 MFC 类库将菜单操作封装在CMenu 类中,所有关于菜单的操作都可以通过CMenu 类的成员函数实现。菜单的基本属性主要包括标识符(ID)、标题(Caption)和提示(Prompt )。 10.1.1创建和编辑菜单 菜单可用于单文档(SDI)、多文档(MDI)以及基于对话框的应用程序。在单文档和多文档应用程序中编辑菜单资源的步骤如下: (1)新建立一个单文档或多文档的应用程序。 (2)在项目工作区中单击资源视图标签ResourceView ,切换到资源视图。 (3)展开Menu 节点,双击菜单资源标识符IDR_MAINFRAME ,或右击该标识符,在弹出的快捷菜单中选择“打开”命令。在编辑区中弹出菜单编辑窗口,显示IDR_MAINFRAME标识的菜单资源。 (4)双击对应菜单的空白菜单项,添加所需菜单。例如要为“文件”添加“保存”菜单项,选择菜单栏中的“文件”命令显示下拉菜单,双击菜单底部的空白处(若添加主菜单,则双击“帮助”后的空白处),打开菜单项目属性对话框 在其中的“ID”和“标明”里面分别输入菜单命令的ID号和标识符。例如:ID号为“ID_FILE_SAVE”,标识符为“保存([S])\tCtrl+S”,含义是设置热键为Alt+S,加速键为Ctrl+S。 如果调整菜单位置,选中要调整位置的菜单项,按住鼠标左键拖动到合适的位置放手即可。如果删除菜单项,首先选中菜单项,按Delete 键删除即可。修改菜单项的方法与创建菜单项相似,双击想要修改的菜单项,修改其属性即可。 在基于对话框的应用程序中,首先插入一个新的菜单资源,具体做法是单击资源视图标签ResourceView ,切换到资源视图,然后右击Resource标识符,在快捷菜单中选择“插入”命令,在弹出的资源类型对话框中选择Menu,击新建就会进入菜单编辑器,在设计并编辑菜单后,在该对话框的“属性”选项卡中,将菜单属性设置为该菜单的ID即可。 10.1.2菜单消息 常用的菜单消息有4种: 1.ON_COMMAND消息 ON_COMMAND消息是为了响应用户点击普通菜单项的消息,需要添加对该消息进行响应的消息处理函数。 2.ON_UPDATE_COMMAND_UI消息 ON_UPDATE_COMMAND_UI消息也是在用户点击普通菜单项的时候产生的,在ON_COMMAND消息之前响应,用于在普通菜单项的前面加上“√”或去掉“√”。使用户可以看出菜单项的当前状态。 3.ON_COMMAND_RANGE消息 ON_COMMAND_RANGE是为了响应ID值连续的若干个ON_COMMAND消息而提供的,用于成组的菜单项的消息响应。ON_COMMAND_RANGE消息为处理具有连续ID的菜单项提供了方便的途径。当我们对成组的菜单项操作时,不论选中了这一组菜单项中的哪一个,MFC都发来一个ON_COMMAND_RANGE消息,我们只需要对该消息编写一个消息处理函数。(只能手工添加消息响应函数) 4.ON_UPDATE_COMMAND_UI_RANGE消息 ON_UPDATE_COMMAND_UI_RANGE与ON_COMMAND_RANGE的关系和ON_UPDATE_COMMAND_UI与ON_COMMAND的关系类似,实现若干连续菜单项的状态更新。用于在成

文档评论(0)

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

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

1亿VIP精品文档

相关文档