Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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