背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-11104.html    注册17xie 一起来写书 实现您的出书梦想!

第三章  MFC消息与命令

Windows应用程序与MS-DOS程序一个很大的不同点就在于其驱动方式:MD-DOS程序使用顺序执行的模式,如果要取得用户的输入,则需要用巨大的循环来不断地检测键盘或鼠标,或其他的输入设备;在Windows应用程序中,系统用消息来向应用程序传递信息,程序本身不需要去检测输入设备的动作,只要对系统传递过来的消息给予正确的处理就行了。

传统的Windows应用程序和MFC应用程序也还有一些不同:在传统的Windows应用程序中,使用一个巨大的switch语句来接收和处理消息;在MFC应用程序中,使用消息映射将特定的消息映射到相应的类的成员函数进行处理。

MFC的消息映射机制使得大部分的C++对象都可以处理消息,如应用程序框架、文档、视图等都可以接收和处理系统传递过来的消息。用户可以对一条消息或一系列消息、菜单命令、控件动作等进行消息映射。消息映射也提供了更新用户界面对象的途径,如菜单命令或工具条按钮的激活与取消,使得用户界面对象的状态与当前的内容相一致。

MFC应用程序中,菜单命令、工具条按钮和加速键被称为“用户界面对象”,菜单命令提供了应用程序的全部或绝大部分的功能,而工具条按钮和加速键则提供了快速选择菜单命令的方法。因此,处理菜单命令和更新用户界面对象的状态是应用程序的基本任务。MFC提供了CMenu类使得用户可以方便地使用和管理应用程序的菜单,同时还提供了菜单编辑器、工具条编辑器和加速键编辑器(都是资源编辑器的组件),使得用户可以“可视”方式来编辑程序的用户界面对象。

3.1  消息驱动机制

所有的Windows应用程序都是使用“消息驱动”机制。对所有的事件,如鼠标按钮被按下、键盘被敲击或窗口被移动等,Windows系统都向相应的窗口发送消息通知事件的发生。MFC框架应用程序与其他任何Windows程序一样,也使用消息驱动机制,但是MFC框架提供了一些方法,使得消息的处理更容易。

消息可以细分为三类:

1Windows消息:主要包括以WM_开头的消息,但WM_COMMAND除外。Windows消息由窗口类或视图类进行处理。比如,如果用户改变了窗口的大小,则系统向应用程序发送WM_SIZE消息。

2)控件通知消息:包括从控件或其他子窗口发送给其父窗口的WM_COMMAND消息。比如说,如果用户改变了文本框控件中的文本,该控件将向其父窗口发送包含着EN_CHANGE控件通知的WM_COMMAND消息。框架对控件通知消息的分配与其他以WM_开头的Windows消息一样,但BN_CLICKED是个例外,该控件通知消息的分配与下述命令消息一样。


字数:1125    最后更新:1年以前 [08-10 20:19]果冻 修改
本页编辑者:果冻  
[前一页]:第三章  [后一页]:第三章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号