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
Elementy członkowskie
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 CMessageMap
klasy . 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_EditCtrl
użyje mapy komunikatów w klasie zawierającej, CAtlEdit
pochodzi z klasy CMessageMap
.
Aby uzyskać więcej informacji na temat map komunikatów, zobacz Mapy komunikatów 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