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;
}
};
當 CMyExtWindowWM_PAINT 物件收到訊息時,訊息會指向實際處理 CMyExtWindow::OnPaint 。 如果 OnPaint 表示訊息需要進一步處理,訊息會被導向至 CMyBaseWindow預設的訊息對應。
除了預設的訊息對應之外,您還可以定義與 ALT_MSG_MAP的替代的訊息對應。 從 BEGIN_MSG_MAP永遠啟動訊息對應。 您可以宣告後續替代的訊息對應。 下列範例會顯示預設的訊息對應 (Message 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