消息映射宏是怎么把消息和消息映射函数联系的??(详细说明,不要复制粘贴) 5
3个回答
展开全部
是通过消息映射表_messageEntries来实现的
首先BEGIN_MESSAGE_MAP这个宏用来定义_messageEntries的表头
中间的消息是定义下面这种结构的表数据
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)
};
END_MESSAGE_MAP宏用来定义表尾
最后,在消息循环中查询_messageEntries,看当前的消息是否需要处理用户代码
首先BEGIN_MESSAGE_MAP这个宏用来定义_messageEntries的表头
中间的消息是定义下面这种结构的表数据
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)
};
END_MESSAGE_MAP宏用来定义表尾
最后,在消息循环中查询_messageEntries,看当前的消息是否需要处理用户代码
展开全部
所谓的消息,就是一个数,当这个数传递到一个窗口程序的时候,窗口程序根据这个值调用对应的函数(这种对应关系就是消息映射,程序通过宏来说明这种对应关系),如果是你,你会怎么做?windows有windows的做法,如果你编写过状态迁移这样的程序结构,你就会明白其中的原理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单的,比如:ON_COMMAND(ID_HELP,&CwinApp::OnHlep)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询