MFC宏消息处理机制的原理

Posted _xiaohaige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC宏消息处理机制的原理相关的知识,希望对你有一定的参考价值。

1.1、在MFC中处理消息的函数是固定的,如afx_msg int OnCreate(LPCREATESTRUCT);这是一个固定的,对应于ON_WM_CREAT()宏。如果改变了函数名,对应的宏就会不认识。

1.2、MyCreate函数,用来响应系统的WM_CREATE消息,这些函数是有固定格式要求的。并且函数名必须和MSDN给定的函数名保持完全一致。

1.3、

struct AFX_MSGMAP
{
  const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)(); 
  const AFX_MSGMAP_ENTRY* lpEntries;
};

 

1.4、

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_PTR nSig;    // signature type (action) or pointer to message #
  AFX_PMSG pfn;   // routine to call (or special value)
};

 

1.5、OnWndMsg();这个函数负责处理消息映射机制宏中的消息。

1.6、

struct AFX_MSG_CACHE

{

  UINT nMsg;

  AFX_MSGMAP_ENTRY *lpEntry;

  AFX_MSGMAP *pMessageMap;

}

 

1.7、AfxFindMessageEntry(pMessageMap->lpEntries, message, 0, 0) != null

  如果,pMessageMap->lpEntries指向的数组中,有message消息,那么该函数返回数组中这个元素的地址,否则返回null

 

以上是关于MFC宏消息处理机制的原理的主要内容,如果未能解决你的问题,请参考以下文章

初识MFC----消息映射机制

MFC的UI更新机制和加速键的创建

MFC编程入门之五(MFC消息映射机制概述)

MFC如何给菜单添加消息映射

MFC自定义消息的实现方法

消息映射机制的介绍