DECLARE_MESSAGE_MAP( )

说明: 
你的程序中的每一个CCmdTarget的派生类都可以提供一个消息映射以处理消息。在你的类声明的末尾使用DECLARE_MESSAGE_MAP宏。然后,在实现了类成员函数的.CPP文件中加入BEGIN_MESSAGE_MAP宏,再加入每个消息处理函数的宏入口,最后使用END_MESSAGE_MAP宏。 
注意: 
如果你在DECLARE_MESSAGE_MAP之后定义了成员,那么你必须为它们指定新的访问类型(public,private 或protected)。 
关于消息映射和DECLARE_MESSAGE_MAP宏的更多信息参见“Visual C++程序员指南”中的“消息处理”和“映射主题”。

示例: 
// DECLARE_MESSAGE_MAP的例子 
class CMyWnd : public CFrameWnd 

// 成员声明 
DECLARE_MESSAGE_MAP( )

};

说明:

DECLARE_MESSAGE_MAP()宏的作用是向类中添加消息映射必要的结构体和函数声明,只需要添加一次,放在什么位置并不重要,就如同类里其他普通函数的声明可以相互交换顺序一样。 函数的修饰符也是可以自己决定的,遵循一般原则。比如你需要在类外部也可以调用该消息响应函数,就可以定义成public的。
======================================================
在一些资料上,有这么一段文字: 
DECLARE_MESSAGE_MAP() 
说明: 
用户程序中的每个CCmdTarget派生类必须提供消息映射以处理消息。在类定义的末尾使用DECLARE_MESSAGE_MAP宏。接着,在定义类成员函数的.CPP文件中,使用BEGIN_MESSAGE_MAP宏,每个用户消息处理函数的宏项下面的列表以及END_MESSAGE_MAP宏。 
注释: 
如果在DECLARE_MESSAGE_MAP之后定义任何一个成员,那么必须为他们指定一个新存取类型(公共的,私有的,保护的)。  我觉得他描述得欠妥,我的理解是:  只要有:只要是CCmdTarget(用于所有能够消息映射的基类)派生类,必有消息映射以处理消息,则在类的说明文件的尾部有DECLARE_MESSAGE_MAP宏,在类的定义文件中有BEGIN_MESSAGE_MAP宏和END_MESSAGE_MAP宏以处理用户消息。  其中BEGIN_MESSAGE_MAP(参数1,参数2) ,参数1为该类的类名,参数2为该类基类的类名。  其中ON_MESSAGE(参数1,参数2),参数1为响应的消息,参数2为该消息对应的处理的函数名。

最新文章

  1. JavaScript 中的尾调用
  2. 理解AUC
  3. php实现设计模式之 简单工厂模式
  4. asp.net MVC3 无法打开项目文件“E:\我们的项目\Project\HeatingMIS.Web\HeatingMIS.Web.csproj”。此安装不支持该项目类型。
  5. VideoToolbox硬件编解码H.264视频流错误码
  6. Java学习笔记(二二)——Java HashMap
  7. Android IOS WebRTC 音视频开发总结(七一)-- H265/H264有何不同
  8. 讲解Canvas中的一些重要方法
  9. POJ2594 Treasure Exploration
  10. mysql高可用方案MHA介绍
  11. cdoj 邱老师看电影
  12. 分析一个socket通信: server/client
  13. Python uwsgi 无法安装以及编译报错的处理方式
  14. BZOJ 1185: [HNOI2007]最小矩形覆盖 [旋转卡壳]
  15. 用ASP.NET MVC仿站糗事百科
  16. A Sample Linker Script
  17. gps相关的知识
  18. 潭州课堂25班:Ph201805201 python 模块 datetime,logging 第七课 (课堂笔记)
  19. vivado SDK之找不到"platform.h"
  20. Django缓存系统

热门文章

  1. 《WF in 24 Hours》读书笔记 - Hour 3(1) - Workflow:添加宿主和事件监听
  2. IT学子成长指导类文章链接(十二)
  3. hdu 4549 M斐波那契数列(矩阵高速幂,高速幂降幂)
  4. cocos2d-x之android编译环境搭建(第二篇)[版本号:cocos2d-x-3.1.1]
  5. zedboard 流水灯
  6. ECMAScript 对象类型
  7. Linux ALSA声卡驱动之六:ASoC架构中的Machine
  8. ubuntu安装vmware 64位
  9. common upload乱码
  10. [转]完整教程--idea使用git进行项目管理