下载此文档

2 Windows 窗口命令.ppt


文档分类:IT计算机 | 页数:约28页 举报非法文档有奖
1/28
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/28 下载此文档
文档列表 文档介绍
第2章 Windows 窗口命令
Windows应用程序都是基于消息驱动的,应用程序通过消息与用户进行交互。消息分为标准Windows消息、控件通知消息和命令消息三大类,程序员需要为用户所关心的消息建立消息映射并编写具有特定功能的消息处理函数。
消息与命令
Windows应用程序都是消息驱动的,消息处理是Windows应用程序的核心。消息是操作系统通知应用程序某个事件已经发生的一种方式,例如当用户敲击键盘、点击菜单、移动鼠标或改变窗口大小时,都会向适当的窗口发送消息。同样,MFC应用程序也要处理Windows消息,但是由于MFC类库中已经封装了消息和对消息的响应事件,这就使在用Visual C++开发Windows应用程序时,对消息的处理更加简单和易于维护。
应用程序在初始化完成后,将调用CWinApp的成员函数Run来处理消息循环,消息循环不断检索由各种事件产生的消息,并将消息分发给适当的窗口。窗口接收到消息后,将调用专门的处理函数来处理各种消息。消息处理函数通常是某个类的成员函数,编写消息处理函数是编写MFC应用程序的主要任务。
响应消息的实例
消息的种类

标准Windows消息主要分为三类。
(1)键盘消息
(2)鼠标消息
(3)窗口消息


(1)用户界面对象

(2)命令ID
(3)命令目标
(4)命令和控件消息的处理函数
选择用户界面对象,
如Clear All菜单项
产生命令消息
ID_EDIT_CLEAR_ALL
命令—目标消息映射
MAND
调用消息处理函数
OnEditClearAll()
用户界面对象处理过程
消息的发送和接收


MFC把命令消息发送给命令目标链(有可能处理该消息的一系列对象),其中至少有一个对象含有处理该命令消息的消息处理函数。命令目标链中的对象接收到消息后,将检查自己的消息映射,查看是否能处理相应的消息。不同对象检查消息映射的时机是不同的,也就是说,消息是按一定优先顺序在命令目标链中传递的。通常,每个命令目标类先把命令消息发送给某些其它对象,给其它对象先行处理该命令消息的机会。

标准命令的发送顺序
接收到命令的命令目标类
查询命令的顺序
MDI主边框窗口
1) 活动的MDI子窗口
2) 主边框窗口
3) 应用程序(CWinApp类对象)
MDI子框架窗口
1) 活动视图
2) 子框架窗口
SDI边框窗口
1) 活动视图
2) 框架窗口
3) 应用程序(CWinApp类对象)
视图
1) 视图
2) 与视图相连的文档
文档
1) 文档
2) 与文档相连的文档模板
对话框
1) 本对话框
2) 拥有本对话框的窗口
3) 应用程序(CWinApp类对象)
消息映射的结构
消息映射都由一组宏组成,可以参照【】的源代码,,我们可以看到以下代码:
BEGIN_MESSAGE_MAP(CMousePositionView, CView)
//{{AFX_MSG_MAP(CMousePositionView)
ON_WM_MOUSEMOVE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


。注意,映射宏之后不能用分号。

常用映射宏及其语法
消息类型
宏格式
参数
标准Windows消息
ON_WM_XXX
无参数
命令消息
MAND
命令ID,处理函数名
命令更新通知消息
MAND_UI
命令ID,处理函数名
控件通知消息
ON_XXX
命令ID,处理函数名
用户自定义消息
ON_MESSAGE
自定义消息ID,处理函数名
已注册Windows消息
ON_REGISTERED_MESSAGE
消息ID,处理函数名
命令ID范围
MAND_RANGE
起始命令ID,结束ID,处理函数名
将更新的命令ID范围
MAND_UI_RANGE
起始命令ID,结束ID,处理函数名
控件ID范围
ON_CONTROL_RANGE
控件通知码,起始控件ID,结束ID,处理函数

2 Windows 窗口命令 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数28
  • 收藏数0 收藏
  • 顶次数0
  • 上传人中国课件站
  • 文件大小0 KB
  • 时间2011-10-11