职业IT人论坛

 找回密码
 注册

扫一扫,访问微社区

搜索
2019PMP认证备考培训项目管理之家专场百度自然排名1-15天上首页,达标计费,无效退款.500+微信公众号程序模块,免费使用!
查看: 1035|回复: 1

mfc消息处理和消息映射的概念

[复制链接]
ksdal 发表于 2012-2-16 11:57 | 显示全部楼层 |阅读模式
  所有windows应用程序都是消息驱动的,消息处理是所有windows应用程序的核心部分。当用户单击鼠标或改变窗口大小时,都将给适当的窗口发送消息。每个消息都对应于某个特定的事件。

b110e619208a672ddbb4bd4f.jpg
消息处理和消息映射的概念
 消息
  消息主要指由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息。例如,单击鼠标左按钮,windows将产WM_LBUTTONDOWN消息,而释放鼠标左按钮将产生WM_LBUTTONUP消息,按下键盘上的字母键,将产生WM_CHAR消息。
 windows消息组成结构
  windows消息由消息号和参数组成:
  消息号
  windows操作系统通过32整数标识一条windows消息,称为消息号。windows消息号具有三个特点:
 唯一性
  唯一性指对于windows操作系统中的每一条消息都有一个且只有一个消息号与它相对应。由于windows操作系统通过消息激活相应的过程,因此消息的标识必须是唯一的。
 直观性
  消息号在形式上表现为消息名,消息名往住直观地说明了消息的产生方式和类型,例如消息名WM_LBUTTONDOWN直观地表示了单击产生的消息。
 可自定义性
  windows系统定义了一些消息号和消息名,程序员可以运用这些消息,也可以使用自已定义的窗口的消息。形式如下:
  #define 消息名 消息号
  注意,为了不与现有的windows系统消息相冲突,在消息号的定义中通常采用如下:
  WM_USER+n WM_USER是windows操作系统定义的用户消息起始值,程序员必须从该起始值后选取消息号,例如自定义消息名为“MESSAGE_1”和 “MESSAGE_2”,可采用如下形式:
  #define MESSAGE_1 WM_USER+1
  #DEFINE MESSAGE_2 WM_USER+2
 参 数
  windows的消息具有以下两个参数:
  (1)字参数(wParam)
  (2)长参数(lParam)
  字参数和长参数都是32位整数,用于提供消息的附带消息,是消息传递过程中参数的载体。附加信息的消息号取决于消息号。
 消息处理
  在MFC中,每个专门的处理函数旱单独处理每个消息。消息处理函数通常是某一类的成员函数,编写消息处理函数是编写框架应用程序的主要任务。
  可以使用ClassWizard创建消息处事函数,然后从Classwizard直接跳到源文件消息处理函数,编写处理代码。
 消息映射
  可以接收消息和命令的所有框架类都有自已的消息映射。框架利用消息映射把消息、命令与它们的处理函数链接起来。从CCmdTarget类派生的任何类都可以有消息映射。虽然叫作“消息映射”,但消息映射既可以处理消息,也可以处理命令。
我是谁 发表于 2012-3-27 23:27 | 显示全部楼层
很好..............
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|网站帮助|职业IT人 ( 粤ICP备12053935号 )

GMT+8, 2019-3-21 13:47 , Processed in 0.092147 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2018 Comsenz Inc.

快速回复 返回顶部 返回列表