Visual C++程序设计基础 第9章 菜单与文档视图结构ok.pptVIP

Visual C++程序设计基础 第9章 菜单与文档视图结构ok.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 菜单与文档/视图结构 §9.1 菜单 Visual C++应用程序的菜单存放在资源脚本文件中,菜单资源模板用一种很简单的结构来定义菜单资源,在运行程序时才被调用。 菜单栏中的菜单通常是按照树形层次结构组织在一起的,菜单列表中的菜单分为三类: ⑴“POPUP”── 弹出式菜单,用来弹出一个子菜单,它是子菜单的标题 ⑵“MENUITEM”── 菜单项或菜单命令,用来调用应用程序的某项功能,菜单项不仅要有菜单名,还必须有标识符ID ⑶“MENUITEM SEPARATOR”── 分隔线,用来区分一组菜单项。 每个菜单都有标题(Caption),称菜单名。只有菜单项有标识符(ID),以“ID_”开头,而弹出式菜单和分隔线没有标识符。 §9.2文档与视图结构及其应用 使用MFC AppWizard可以创建文档界面应用程序和基于对话框(Dialog based)的应用程序。文档界面应用程序分为单文档界面SDI (Single Document Interface)与多文档界面MDI (Multiple Documents Interface)两种 。 MDI程序与SDI程序的主要区别在于框架窗口类, 使用MFC AppWizard开发的文档操作的应用程序,都采用文档/视图结构。在文档/视图结构中,数据的维护及其显示分别由两个不同但又彼此紧密相关的文档类和视图类负责。文档/视图结构比传统的编程方式更有利于文档应用程序的开发。 每一个文档可以有多个不同的视图,但每个视图只能对应于一个确定的文档。因此,视图是提供文档与用户交互的一个窗口,文档的不同表现形式可采用不同的视图来与用户交互。 框架窗口是Windows应用程序的界面,对SDI应用程序来讲,它是CMainFrame类的一个对象,一个应用程序只有一个框架窗口。 * 9.1 菜单 9.2 文档/视图结构及其应用 9.1.1 菜单概述 1.菜单资源模板 2.菜单类的方法 菜单类(CMenu)是从CObject类派生的,可打开Afxwin.h文件查看其定义,从而了解该类的功能。菜单类提供了许多处理菜单和菜单项的方法, ⑴ 菜单类的构造方法使应用程序在运行时通过CMenu对象建立菜单 ⑵ 菜单操作方法只有DeleteMenu()和TrackPopupMenu()两个,用来处理菜单的顶层操作。DeleteMenu()删除某个特定的菜单项,如果被删除的菜单项有相关的弹出式子菜单,此弹出式菜单的句柄也要被删除并释放内存;TrackPopupMenu()在一个POINT结构所指定的位置显示一个快捷菜单。 ⑶ 菜单项的操作方法用来处理具体的菜单项,是菜单操作方法的补充。 ⑷ 虚拟方法使应用程序重写它们以提供CMenu派生类自绘菜单,它共有两个方法,即DrawItem()和MeasureItem()。DrawItem()在自绘菜单形状改变时由MFC调用,MeasureItem()在自绘菜单项创建时由MFC调用来得到菜单的大小。 3.建立菜单及菜单消息映射 ⑴ 建立菜单 可以动态地建立菜单或将菜单作为静态资源添加到程序中,MFC应用程序中加入菜单一般要经过下述操作: ① 利用“Insert”→“Resource”菜单命令将菜单资源加入到应用程序中。 ② 在菜单编辑器中打开菜单,通过设置菜单属性进行菜单设计。 ③ 建立菜单与窗口的关联。 ④ 为每个菜单命令项添加WM_COMMAND消息映射和对应的消息处理函数。 ⑵ 菜单消息映射 在应用程序运行时,当用户选择了一个有效的菜单项时,系统会向应用程序发送一个WM_COMMAND消息,在此消息的参数中包含有该菜单项的ID号,由该消息驱动的消息处理函数将被调用。对每个菜单项ID可设置两个消息映射: ON_COMMAND消息映射的作用是在用户选择该菜单项时调用它对应的处理函数。 ON_UPDATE_COMMAND_UI消息映射的作用是在菜单项被显示时通过调用它对应的消息映射函数来确定其状态。 9.1.2 对话框应用程序中的菜单设计实例 使用MFC AppWizard生成基于对话框、单文档SDI或多文档MDI应用程序框架时,基于对话框的应用程序的主对话框窗口中不包含有菜单,而单文档SDI和多文档MDI应用程序的主框架窗口中包含有菜单. 如果要在MFC AppWizard生成的基于对话框的应用程序的对话框中显示菜单,必须把菜单作为一个资源加入到项目中

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档