BEGIN_MSG_MAP
标记默认的消息映射的开头。
BEGIN_MSG_MAP( theClass )
参数
- theClass
[in]包含消息映射的选件类的名称。
备注
CWindowImpl::WindowProc 使用默认的消息映射处理发送到窗口。消息映射处理消息的适当处理程序函数或另一消息映射。
下面的宏映射到消息给处理程序函数。在 theClass必须定义此功能。
宏 |
说明 |
---|---|
映射到Windows消息处理程序功能。 |
|
映射Windows消息的一个连续范围给处理程序函数。 |
|
映射到 WM_COMMAND 消息给处理程序函数,根据通知代码和菜单项、控件或快捷键的标识符。 |
|
映射到 WM_COMMAND 消息给处理程序函数,具体取决于菜单项、控件或快捷键的标识符。 |
|
映射到 WM_COMMAND 消息给处理程序函数,根据通知代码。 |
|
映射 WM_COMMAND 消息的一个连续范围给处理程序函数,具体取决于菜单项、控件或快捷键的标识符。 |
|
映射到 WM_NOTIFY 消息给处理程序函数,根据通知代码和控件标识符。 |
|
映射到 WM_NOTIFY 消息给处理程序函数,根据控件标识符。 |
|
映射到 WM_NOTIFY 消息给处理程序函数,根据通知代码。 |
|
映射 WM_NOTIFY 消息的一个连续范围给处理程序函数,根据控件标识符。 |
下面的宏处理消息至其他消息映射。此过程称为“绑定”。
宏 |
说明 |
---|---|
对默认消息的链接到基类映射。 |
|
对默认消息的链接到选件类的数据成员映射。 |
|
对备用消息的链接到基类映射。 |
|
对备用消息的链接到选件类的数据成员映射。 |
|
对默认消息的链接到另一选件类映射在运行时。 |
下面的宏处理“从父窗口的反射”。例如,控件通常发送通知消息到其处理的父窗口,但是,父窗口可能反映出消息返回给控件。
宏 |
说明 |
---|---|
映射反射的 WM_COMMAND 消息给处理程序函数,根据通知代码和菜单项、控件或快捷键的标识符。 |
|
映射反射的 WM_COMMAND 消息给处理程序函数,具体取决于菜单项、控件或快捷键的标识符。 |
|
映射反射的 WM_COMMAND 消息给处理程序函数,根据通知代码。 |
|
映射反射的 WM_COMMAND 消息给处理程序函数,根据控件标识符的一个连续范围。 |
|
映射反射的 WM_COMMAND 消息给处理程序函数,根据通知代码和控件标识符的一个连续范围。 |
|
映射反射的 WM_NOTIFY 消息给处理程序函数,根据通知代码和控件标识符。 |
|
映射反射的 WM_NOTIFY 消息给处理程序函数,根据控件标识符。 |
|
映射反射的 WM_NOTIFY 消息给处理程序函数,根据通知代码。 |
|
映射反射的 WM_NOTIFY 消息给处理程序函数,根据控件标识符的一个连续范围。 |
|
映射反射的 WM_NOTIFY 消息给处理程序函数,根据通知代码和控件标识符的一个连续范围。 |
示例
class CMyExtWindow : public CMyBaseWindow
{
public:
BEGIN_MSG_MAP(CMyExtWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnSetFocus(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
当 CMyExtWindow 对象接收 WM_PAINT 消息时,消息处理对实际处理的 CMyExtWindow::OnPaint。如果 OnPaint 指示消息需要进一步处理消息,然后将处理到 CMyBaseWindow的默认消息映射。
除了默认消息映射,可以定义与 ALT_MSG_MAP的替换消息映射。从 BEGIN_MSG_MAP始终启动消息映射。您可以声明后面的替换消息映射。下面的示例演示默认消息映射和一个替换消息映射,每个包含的一个处理程序功能:
BEGIN_MSG_MAP(CMyOneAltClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
下一个示例演示两个替换消息映射。默认的消息映射为空。
BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()
END_MSG_MAP 宏指示消息映射的结尾。请注意始终正好有 BEGIN_MSG_MAP 和 END_MSG_MAP一个实例。
有关使用的更多信息消息在ATL映射,请参见 消息映射。
要求
Header: atlwin.h