BEGIN_MSG_MAP

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."

ATL makra i funkcje globalne

Zobacz też

CMessageMap, CDynamicChain

Index