WEB开发网
开发学院软件开发VC MFC消息响应机制分析 阅读

MFC消息响应机制分析

 2008-11-14 19:35:17 来源:WEB开发网   
核心提示: 三.MFC的消息实现机制我们可以看到,在MFC的框架结构下,MFC消息响应机制分析(2),可以进行消息处理的类的头文件里面都会含有DECLARE_MESSAGE_MAP()宏,这里主要进行消息映射和消息处理函数的声明,可以进行消息处理的类的实现文件里一般都含有如下的结构,BEGIN_MES

三.MFC的消息实现机制

我们可以看到,在MFC的框架结构下,可以进行消息处理的类的头文件里面都会含有DECLARE_MESSAGE_MAP()宏,这里主要进行消息映射和消息处理函数的声明。可以进行消息处理的类的实现文件里一般都含有如下的结构。


BEGIN_MESSAGE_MAP(CInheritClass, CBaseClass)
//{{AFX_MSG_MAP(CInheritClass)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

这里主要进行消息映射的实现和消息处理函数的实现。

所有能够进行消息处理的类都是基于CCmdTarget类的,也就是说CCmdTarget类是所有可以进行消息处理类的父类。CCmdTarget类是MFC处理命令消息的基础和核心。

同时MFC定义了下面的两个主要结构:

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

struct AFX_MSGMAP
{
#ifdef _AFXDLL
const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)();
#else
const AFX_MSGMAP* pBaseMap;
#endif
const AFX_MSGMAP_ENTRY* lpEntries;
};

其中AFX_MSGMAP_ENTRY结构包含了

一个消息的所有相关信息,其中

nMessage为Windows消息的ID号

上一页  1 2 3 4  下一页

Tags:MFC 消息 响应

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接