消息映射机制

原创 2001年08月03日 21:06:00
 

 

消息映射机制

 任何需要消息映射的类,在其定义中必须加入DECLARE_MESSAGE_MAP()。

宏DECLARE_MESSAGE_MAP() 的定义如下:
#ifdef _AFXDLL
#define DECLARE_MESSAGE_MAP() /
private: /
static const AFX_MSGMAP_ENTRY _messageEntries[]; / //采用登录AFX_MSGMAP_ENTRY的私有数组_messageEntries,称为登录消息
protected: /
static AFX_DATA const AFX_MSGMAP messageMap; / //指向登录消息数组的消息映射
static const AFX_MSGMAP* PASCAL _GetBaseMessageMap(); / //返回消息映射的地址
virtual const AFX_MSGMAP* GetMessageMap() const; /

#else
#define DECLARE_MESSAGE_MAP() /
private: /
static const AFX_MSGMAP_ENTRY _messageEntries[]; /
protected: /
static AFX_DATA const AFX_MSGMAP messageMap; /
virtual const AFX_MSGMAP* GetMessageMap() const; /

#endif




AFX_MSGMAP_ENTRY定义如下:

struct AFX_MSGMAP_ENTRY
{
UINT nMessage; // windows message
UINT nCode; // control code or WM_NOTIFY code
UINT nID; // control ID (or 0 for windows messages)
UINT nLastID; // used for entries specifying a range of control id's
UINT nSig; // signature type (action) or pointer to message #
AFX_PMSG pfn; // routine to call (or special value)
};



AFX_MSGMAP 定义如下: //是个动态链表,每个节点包含指向下一节点的指针和指向AFX_MSGMAP_ENTRY 的指针
struct AFX_MSGMAP
{
#ifdef _AFXDLL
const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)();
#else
const AFX_MSGMAP* pBaseMap;
#endif
const AFX_MSGMAP_ENTRY* lpEntries;
};

 

 

MFC六大机制之三:消息映射机制

上篇我们通过重写WindowProc函数来处理消息,今天我们采用下面的方法实现同样的功能  1.建一个win32简单应用程序,不要认为这样就不能写出MFC程序,因为是不是MFC程序取决于调没调MFC...
  • meetings
  • meetings
  • 2015年06月28日 23:12
  • 2391

VC----MFC消息映射机制详解

Windows程序和MFC程序是靠消息驱动的,他们对于消息的处理本质上是相同的。只是Windows程序对于消息处理的过程十分清晰明了,MFC程序则掩盖了消息处理的过程,以消息映射的方式呈现在开发者面前...
  • yiziweiyang
  • yiziweiyang
  • 2016年09月08日 13:41
  • 419

MFC消息映射机制的理解

何谓消息、消息处理函数、消息映射? 消息简单的说就是指通过输入设备向程序发出指令要执行某个操作。具体的某个操作是你的一系列代码。称为消息处理函数。 在SDK中消息其实非常容易理解,当窗口建立后便会...
  • chenjie863
  • chenjie863
  • 2013年12月22日 11:43
  • 1280

MFC之消息映射机制实现方法

本文分析了完成消息映射的的应有步骤以及消息映射机制的原理性分析。
  • xiao3404
  • xiao3404
  • 2016年09月04日 19:04
  • 780

Windows-消息映射机制原理和简单的绘图技术

Windows-消息映射机制原理和简单的绘图技术 1.MFC消息映射机制 众所周知,Windows程序是基于消息编程的,但是在MFC中已经为我们封装好了这个框架的消息机制,我们需要了解它的实现原理...
  • qq_22075977
  • qq_22075977
  • 2016年04月24日 16:21
  • 2549

Qt元对象表机制与MFC消息映射机制

http://blog.csdn.net/oowgsoo/article/details/1529411 多态的底层实现机制只有两种,一种是按照名称查表,一种是按照位置查表,两种方式各有利弊,c++...
  • wenwenxiong
  • wenwenxiong
  • 2015年01月09日 23:30
  • 601

信号与槽精讲

信号(signals)和槽(slots) 精讲 2010-11-01 22:54 讲的特别好,转载一下,原文地址:http://www.cppblog.com/Walker/articles/14...
  • davidsher_zhou
  • davidsher_zhou
  • 2017年12月11日 10:37
  • 27

MFC——3.MFC消息映射机制

本文通过绘图程序向读者介绍了MFC程序的消息映射机制,并对比了前面所讲的消息循环机制。通过消息映射能进一步理解MFC程序的响应流程,对后面可以不用向导而手动修改MFC程序打下基础工作。...
  • u010757264
  • u010757264
  • 2016年03月01日 09:33
  • 427

MFC消息映射机制实现

Windows程序的本质是依靠消息来维持运行的。每一个消息都有一个代码,并以WM_开头的常量表示。 MFC把消息分为三大类: 1.命令消息(WM_COMMAND):命令消息意味着“使用者命令程序做...
  • wzxq123
  • wzxq123
  • 2016年07月23日 16:49
  • 987

MFC消息映射笔记

大家有没有思考过当一个消息出现,应用程序框架是如何将消息与对象建立关系的?1.消息宏\quad为了支持消息映射,MFC提供了3种宏。1.1消息映射的声明和分解宏消息映射的声明和分界宏包含在CCmdTa...
  • q__y__L
  • q__y__L
  • 2016年05月03日 19:45
  • 1338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:消息映射机制
举报原因:
原因补充:

(最多只允许输入30个字)