//afxwin.h
struct AFX_MSGMAP
{
const AFX_MSGMAP* (PASCAL* pfnGetBaseMap)();
const AFX_MSGMAP_ENTRY* lpEntries;
};
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)
};
typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void);
//===========
#define DECLARE_MESSAGE_MAP() \
protected: \
static const AFX_MSGMAP* PASCAL GetThisMessageMap(); \
virtual const AFX_MSGMAP* GetMessageMap() const; \
博客展示了AFX消息映射相关代码,包含AFX_MSGMAP和AFX_MSGMAP_ENTRY结构体定义,前者包含获取基映射的函数指针和消息映射条目指针,后者包含消息、控制代码等信息。还给出了DECLARE_MESSAGE_MAP宏定义。
6077

被折叠的 条评论
为什么被折叠?



