- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9讲:菜单和框架窗口
课程内容安排
Windows应用程序的框架窗口
Windows菜单和MFC菜单编辑器
Windows应用程序的快捷键
命令处理的使用
复文本编辑
实例讲解
属性表的开发过程
课程内容安排
CPersistentFrame持续信息类的使用
使用ActivateFrame()成员函数设置窗口尺寸和位置
创建窗口之前的工作:PreCreateWindow成员函数
控制栏状态和Windows注册表
MDI应用程序和持续框架
Windows应用程序的框架窗口
主框架窗口包含标题栏和菜单栏,而各种各样的子窗口,其中包括工具栏、状态栏窗口和视图窗口,则占据着主窗口的整个客户区域。应用程序就是通过框架和视图之间的消息传递来控制框架和视图之间的相互作用的。
Windows菜单和MFC菜单编辑器
菜单是Windows程序设计中一项重要的界面元素。通常,开发者可以为主窗口定义一个默认的菜单资源,当应用程序创建窗口时,该默认的菜单会被自动装入。也可以定义一个与窗口无关的菜单资源,当调用一些消息函数时,可以自动调入,如鼠标右键的浮动菜单。
VC6.0提供了一个强大的菜单资源编辑器,通过这个菜单资源编辑器,开发者可以灵活地开发各种各样的菜单,并且可以编辑菜单的属性等。
Windows应用程序的快捷键
键盘加速键的编辑是在资源编辑框中的键盘加速键资源中
命令处理的使用
MFC应用程序框架中,大多数命令消息都来自于应用程序框架,但应用程序框架并没有对这些消息进行处理,因此开发者要自主添加消息处理函数并且在消息处理函数的实现方面做一些工作。
当应用程序接收到一个框架窗口命令时,按照以下的顺序进行寻找相应的消息控制函数:
(1)视图。
(2)文档。
(3)MDI子框架窗口。
(4)MDI主框架窗口。
(5)应用程序。
复文本编辑
Windows有两种文本编辑控件:普通的编辑控件和复文本编辑通用控件。MFC提供了CEditView类和CRichEditView类,以支持复文本的功能。
编辑视图类:CEditView类
复文本编辑视图类:CRichEditView类
复文本编辑控件类:CRichEditCtrl类
实例讲解
实例9.1-快捷键和文本编辑使用
属性表的开发过程
选项卡对话框形式的属性表创建过程的步骤一般是:
(1)创建若干个对话框,用于制作选项卡的子对话框。虽然对话框的大小没有限制,不过为了方便起见,最好在尺寸上不要差别太大。
(2)使用ClassWizard为每个对话框生成一个类,这些类可以取类似的名字以表示这些子对话框相互之间的关系,并且,这些类的基类都是CPropertyPage类。
(3)生成CPropertySheet类的派生类,并将子对话框类的对象添加到该类中。
(4)使用Domal()函数生成属性表的对话框。
(5)添加Apply按钮的消息处理函数。
鼠标右键调用的浮动快捷菜单
Windows菜单主要包括两类:
(1)顶层菜单:该菜单就是主框架窗口的顶级菜单,这个是前文常见的一种菜单。
(2) 弹出式菜单:这个前文虽然没有提及,不过相信读者在使用各种应用软件时,都使用过弹出菜单,如鼠标右键弹出的菜单列表。
使用弹出式的菜单实质上就是通过获取了一个指向某菜单的指针来进行显示
CPersistentFrame持续信息类的使用
CPersistentFrame类能够记住以下的特性:
(1)窗口尺寸
(2)窗口位置
(3)最大化状态
(4)最小化状态
(5)工具栏和状态栏是否处于允许状态以及它们的位置
一切C++的类对象实际上也只能在内存中运行,它是怎么做到记忆的功能的呢?原因在于,当用户关闭又CPersistentFrame类创建的应用程序时,上述信息将会倍保存在Windows操作系统的注册表里面,而Windows的注册表是存放在磁盘中的,因此就达到了记忆的效果。
使用ActivateFrame()成员函数设置窗口尺寸和位置
在一个MFC的单文档应用程序中,主框架窗口是视图窗口的“父窗口”,父窗口的创建是先于子窗口的,改变框架窗口尺寸的关键在于CFrameWnd类的ActivateFrame成员函数。
如果使用对派生类中的ActivateFrame成员函数进行重载,开发者就可以调用CWnd::SetWindowPlacement函数来设置框架窗口的位置和尺寸,也可以设置控制栏的可视状态,而这些工作都是在框架窗口被显示之前完成的。
PreCreateWindow成员函数
PreCreateWindow成员函数视在CW
文档评论(0)