BEGIN_MSG_MAP ( theClass )
Parametry
theClass
[w] Nazwa klasy zawierający mapę wiadomości.
Uwagi
Oznacza początek domyślną mapy wiadomości. CWindowImpl::WindowProc używa mapę wiadomości domyślnie proces wiadomości wysyłanych do okna. Mapa wiadomości kieruje wiadomości do funkcji obsługi odpowiedniego lub inną mapę wiadomości.
Następujące makra mapę wiadomość do funkcji obsługi. Ta funkcja musi być zdefiniowana w theClass.
| Makro | Opis |
| MESSAGE_HANDLER | Mapuje komunikat systemu Windows do funkcji obsługi. |
| MESSAGE_RANGE_HANDLER | Mapy do funkcji obsługi wiadomości ciągły zakres Windows. |
| COMMAND_HANDLER | Mapuje wiadomość WM_COMMAND do funkcji obsługi, w oparciu o kod powiadomienia i identyfikator elementu menu, kontroli lub akcelerator. |
| COMMAND_ID_HANDLER | Mapuje wiadomość WM_COMMAND do funkcji obsługi, na podstawie identyfikatora elementu menu, kontroli lub akcelerator. |
| COMMAND_CODE_HANDLER | Mapuje wiadomość WM_COMMAND do funkcji obsługi, w oparciu o kod powiadomienia. |
| COMMAND_RANGE_HANDLER | Mapuje ciągły zakres WM_COMMAND wiadomości do funkcji obsługi, na podstawie identyfikatora elementu menu, kontroli lub akcelerator. |
| NOTIFY_HANDLER | Mapuje wiadomość WM_NOTIFY do funkcji obsługi, w oparciu o kod powiadomienia i identyfikator formantu. |
| NOTIFY_ID_HANDLER | Mapuje wiadomość WM_NOTIFY do funkcji obsługi, oparte na identyfikator formantu. |
| NOTIFY_CODE_HANDLER | Mapuje wiadomość WM_NOTIFY do funkcji obsługi, w oparciu o kod powiadomienia. |
| NOTIFY_RANGE_HANDLER | Mapuje ciągły zakres WM_NOTIFY wiadomości do funkcji obsługi, oparte na identyfikator formantu. |
Następujące makra skierować wiadomość do innego mapę wiadomości. Proces ten jest nazywany „łańcuchowym."
| Makro | Opis |
| CHAIN_MSG_MAP | Łańcuchy wiadomość domyślną mapę w klasie base. |
| CHAIN_MSG_MAP_MEMBER | Łańcuchy wiadomość domyślną mapę Państwa danych klasy. |
| CHAIN_MSG_MAP_ALT | Łańcuchy do wiadomości alternatywnego mapę w klasie base. |
| CHAIN_MSG_MAP_ALT_MEMBER | Łańcuchy do wiadomości alternatywnego Mapa Państwa danych klasy. |
| CHAIN_MSG_MAP_DYNAMIC | Łańcuchy wiadomość domyślną mapę do innej klasy w czasie wykonywania. |
Przykład
klasa CMyWindow:...
{
publiczne:
nbsp; ...
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
}
Gdy CMyWindow obiekt odbiera WM_PAINT wiadomości, wiadomość jest skierowane do CMyWindow::OnPaint dla rzeczywistego przetwarzania. Jeśli OnPaint wskazuje wiadomości wymaga dalszego przetwarzania, będzie komunikat, a następnie być skierowane do mapy wiadomości domyślnie wCMyBaseWindow.
Oprócz domyślną mapy wiadomości można zdefiniować mapą alternatywnego wiadomości z ALT_MSG_MAP. Zawsze rozpocząć mapy wiadomości z BEGIN_MSG_MAP. Następnie można zadeklarować mapy kolejnych wiadomości alternatywnej. W poniższym przykładzie pokazano domyślny komunikat mapę i mapę jednej wiadomości alternatywnej, każda zawierająca jedną funkcję obsługi:
BEGI&N_MSG_MAP(CMyClass)
nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
Następny przykład ilustruje dwie mapy alternatywnego wiadomości. Mapa wiadomości domyślnie jest puste.
BEGI&N_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
MESSAGE_HANDLER (WM_CREATE, OnCreate)
END_MSG_MAP()
Makro END_MSG_MAP znaki końca mapę wiadomości. Należy zauważyć, że jest zawsze dokładnie jedno wystąpienie BEGIN_MSG_MAP i END_MSG_MAP.
Aby uzyskać więcej informacji na temat mapom wiadomości w ATL zobacz Wiadomości mapuje w artykule "ATL okno klasy."
Zobacz też