Udostępnij za pośrednictwem


Klasa CMessageMap

Ta klasa umożliwia mapom komunikatów obiektu dostęp do innego obiektu.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

class ATL_NO_VTABLE CMessageMap

Członkowie

Metody publiczne

Nazwa/nazwisko opis
CMessageMap::P rocessWindowMessage Uzyskuje dostęp do mapy komunikatów w klasie -pochodnej CMessageMap.

Uwagi

CMessageMap jest abstrakcyjną klasą bazową, która umożliwia mapom komunikatów obiektu dostęp do innego obiektu. Aby obiekt uwidocznił mapy komunikatów, klasa musi pochodzić z klasy CMessageMap.

Usługa ATL używa CMessageMap do obsługi zawartych okien i dynamicznego tworzenia łańcuchów map komunikatów. Na przykład każda klasa zawierająca obiekt CContainedWindow musi pochodzić z CMessageMapklasy . Poniższy kod jest pobierany z przykładu SUBEDIT . Za pomocą CComControlCAtlEdit klasa automatycznie pochodzi z klasy CMessageMap.

class ATL_NO_VTABLE CAtlEdit :
   OtherInheritedClasses
   public CComControl<CAtlEdit>
   // CComControl derives from CWindowImpl, which derives from CMessageMap
{
public:
   // Declare a contained window data member
   CContainedWindow m_ctlEdit;

   // Initialize the contained window:
   // 1. Pass "Edit" to specify that the contained 
   //    window should be based on the standard 
   //    Windows Edit box
   // 2. Pass 'this' pointer to specify that CAtlEdit 
   //    contains the message map to be used for the 
   //    contained window's message processing
   // 3. Pass the identifier of the message map. '1'
   //    identifies the alternate message map declared
   //    with ALT_MSG_MAP(1)
   CAtlEdit()
      : m_ctlEdit(_T("Edit"), this, 1)
   {
      m_bWindowOnly = TRUE;
   }

// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
   CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()

Ponieważ zawarte okno , m_EditCtrlużyje mapy komunikatów w klasie zawierającej, CAtlEdit pochodzi z klasy CMessageMap.

Aby uzyskać więcej informacji na temat map komunikatów, zobacz Komunikat Mapy w artykule "Klasy okien ATL".

Wymagania

Nagłówek: atlwin.h

CMessageMap::P rocessWindowMessage

Uzyskuje dostęp do mapy komunikatów zidentyfikowanej przez dwMsgMapID w klasie -pochodnej CMessageMap.

virtual BOOL ProcessWindowMessage(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT& lResult,
    DWORD dwMsgMapID) = 0;

Parametry

Hwnd
[in] Uchwyt do okna odbierającego komunikat.

uMsg
[in] Wiadomość wysłana do okna.

Wparam
[in] Dodatkowe informacje specyficzne dla komunikatów.

Lparam
[in] Dodatkowe informacje specyficzne dla komunikatów.

lResult
[out] Wynik przetwarzania komunikatów.

dwMsgMapID
[in] Identyfikator mapy komunikatów, która będzie przetwarzać komunikat. Domyślna mapa komunikatów zadeklarowana przy użyciu BEGIN_MSG_MAP jest identyfikowana przez 0. Alternatywna mapa komunikatów zadeklarowana za pomocą ALT_MSG_MAP(msgMapID), jest identyfikowana przez element msgMapID.

Wartość zwracana

WARTOŚĆ TRUE, jeśli komunikat jest w pełni obsługiwany; w przeciwnym razie, FAŁSZ.

Uwagi

Wywoływana przez procedurę okna obiektu CContainedWindow lub obiektu dynamicznie łączącego się z mapą komunikatów.

Zobacz też

Klasa CDynamicChain
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Omówienie klasy