Udostępnij za pośrednictwem


BEGIN_MSG_MAP

Oznacza początek domyślną mapę wiadomości.

BEGIN_MSG_MAP( theClass )

Parametry

  • theClass
    [w] Nazwa klasy zawierającej mapę wiadomości.

Uwagi

CWindowImpl::WindowProc wykorzystuje domyślną mapę wiadomości do przetwarzania wiadomości wysyłanych do okna.Mapa wiadomości kieruje wiadomości funkcji obsługi odpowiedniego lub inną mapę wiadomości.

Następujące makra mapować funkcji obsługi wiadomości.Ta funkcja musi być zdefiniowana w theClass.

Makro

Opis

MESSAGE_HANDLER

Mapuje funkcji obsługi wiadomości systemu Windows.

MESSAGE_RANGE_HANDLER

Mapuje funkcji obsługi wiadomości ciągły zakres systemu Windows.

COMMAND_HANDLER

Mapy WM_COMMAND wiadomość do funkcji obsługi, na podstawie kodu powiadomienia i identyfikator elementu menu, kontroli lub akceleratora.

COMMAND_ID_HANDLER

Mapy WM_COMMAND wiadomość do funkcji obsługi, na podstawie identyfikatora element menu, kontroli lub akceleratora.

COMMAND_CODE_HANDLER

Mapy WM_COMMAND wiadomość do funkcji obsługi, na podstawie kodu powiadomienia.

COMMAND_RANGE_HANDLER

Mapuje ciągły zakres WM_COMMAND funkcji obsługi wiadomości na podstawie identyfikatora element menu, kontroli lub akceleratora.

NOTIFY_HANDLER

Mapy WM_NOTIFY wiadomość do funkcji obsługi, na podstawie kodu powiadomienia i identyfikator formantu.

NOTIFY_ID_HANDLER

Mapy WM_NOTIFY wiadomość do funkcji obsługi, na podstawie identyfikatora formantu.

NOTIFY_CODE_HANDLER

Mapy WM_NOTIFY wiadomość do funkcji obsługi, na podstawie kodu powiadomienia.

NOTIFY_RANGE_HANDLER

Mapuje ciągły zakres WM_NOTIFY funkcji obsługi wiadomości oparte na identyfikator formantu.

Następujące makra bezpośrednie wiadomości do innego mapy wiadomości.Ten proces jest nazywany "łańcuch".

Makro

Opis

CHAIN_MSG_MAP

Łańcuchy wiadomość domyślną mapę w klasie podstawowej.

CHAIN_MSG_MAP_MEMBER

Łańcuchy wiadomość domyślną mapę członka danych klasy.

CHAIN_MSG_MAP_ALT

Łańcuchy alternatywny wiadomość mapę w klasie podstawowej.

CHAIN_MSG_MAP_ALT_MEMBER

Łańcuchy alternatywny wiadomość mapę członka danych klasy.

CHAIN_MSG_MAP_DYNAMIC

Łańcuchy wiadomość domyślną mapę do innej klasy w czasie wykonywania.

Następujące makra bezpośrednie "odzwierciedlenie" wiadomości z okna nadrzędnego.Na przykład formant zwykle wysyła wiadomości powiadomień do jego okno nadrzędne dla przetwarzania, ale okno nadrzędne może odzwierciedlać wiadomości powrót do formantu.

Makro

Opis

REFLECTED_COMMAND_HANDLER

Mapuje odbitego WM_COMMAND wiadomość do funkcji obsługi, na podstawie kodu powiadomienia i identyfikator elementu menu, kontroli lub akceleratora.

REFLECTED_COMMAND_ID_HANDLER

Mapuje odbitego WM_COMMAND wiadomość do funkcji obsługi, na podstawie identyfikatora element menu, kontroli lub akceleratora.

REFLECTED_COMMAND_CODE_HANDLER

Mapuje odbitego WM_COMMAND wiadomość do funkcji obsługi, na podstawie kodu powiadomienia.

REFLECTED_COMMAND_RANGE_HANDLER

Mapuje odbitego WM_COMMAND wiadomość do funkcji obsługi, oparte na ciągły zakres kontroli identyfikatorów.

REFLECTED_COMMAND_RANGE_CODE_HANDLER

Mapuje odbitego WM_COMMAND wiadomość do funkcji obsługi, na podstawie kodu powiadomienia i ciągły zakres kontroli identyfikatorów.

REFLECTED_NOTIFY_HANDLER

Mapuje odbitego WM_NOTIFY wiadomość do funkcji obsługi, na podstawie kodu powiadomienia i identyfikator formantu.

REFLECTED_NOTIFY_ID_HANDLER

Mapuje odbitego WM_NOTIFY wiadomość do funkcji obsługi, na podstawie identyfikatora formantu.

REFLECTED_NOTIFY_CODE_HANDLER

Mapuje odbitego WM_NOTIFY wiadomość do funkcji obsługi, na podstawie kodu powiadomienia.

REFLECTED_NOTIFY_RANGE_HANDLER

Mapuje odbitego WM_NOTIFY wiadomość do funkcji obsługi, oparte na ciągły zakres kontroli identyfikatorów.

REFLECTED_NOTIFY_RANGE_CODE_HANDLER

Mapuje odbitego WM_NOTIFY wiadomość do funkcji obsługi, na podstawie kodu powiadomienia i ciągły zakres kontroli identyfikatorów.

Przykład

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;   
   }
};

Gdy CMyExtWindow obiekt odbiera WM_PAINT wiadomości, wiadomość jest kierowany do CMyExtWindow::OnPaint dla rzeczywistego przetwarzania.Jeśli OnPaint oznacza wiadomość wymaga dalszego przetwarzania, będzie komunikat, a następnie skierowany do domyślną mapę wiadomości w CMyBaseWindow.

Oprócz domyślną mapę wiadomości, można zdefiniować mapę alternatywny wiadomości z ALT_MSG_MAP.Zawsze rozpocząć mapa wiadomości z BEGIN_MSG_MAP.Następnie można zadeklarować mapy kolejnych wiadomości alternatywny.Poniższy przykład przedstawia domyślną mapę wiadomości i mapę jednej wiadomości alternatywny, każda zawierająca jedną funkcję obsługi:

BEGIN_MSG_MAP(CMyOneAltClass)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

W kolejnym przykładzie dwie mapy alternatywny wiadomości.Mapa domyślna wiadomość jest pusta.

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 makro oznacza koniec 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.

Wymagania

Nagłówek: atlwin.h

Zobacz też

Informacje

Klasa CMessageMap

Klasa CDynamicChain

Inne zasoby

Makra mapę wiadomości (ATL)

Makra ATL