CMessageMap-Klasse
Mit dieser Klasse kann die Nachrichtenzuordnung eines Objekts von einem anderen Objekt zugegriffen werden.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
class ATL_NO_VTABLE CMessageMap
Member
Öffentliche Methoden
Name | Beschreibung |
---|---|
CMessageMap::P rocessWindowMessage | Greift auf eine Nachrichtenzuordnung in der CMessageMap abgeleiteten Klasse zu. |
Hinweise
CMessageMap
ist eine abstrakte Basisklasse, mit der die Nachrichtenzuordnungen eines Objekts von einem anderen Objekt abgerufen werden können. Damit ein Objekt seine Nachrichtenzuordnungen verfügbar macht, muss seine Klasse von CMessageMap
.
ATL unterstützt CMessageMap
enthaltene Fenster und dynamische Nachrichtenzuordnungsverkettung. Beispielsweise muss jede Klasse, die ein CContainedWindow -Objekt enthält, von CMessageMap
. Der folgende Code stammt aus dem SUBEDIT-Beispiel . Über CComControl wird die CAtlEdit
Klasse automatisch von 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()
Da das enthaltene Fenster eine m_EditCtrl
Meldungszuordnung in der enthaltenden Klasse verwendet, CAtlEdit
wird von CMessageMap
.
Weitere Informationen zu Nachrichtenzuordnungen finden Sie im Artikel "ATL-Fensterklassen".
Anforderungen
Kopfzeile: atlwin.h
CMessageMap::P rocessWindowMessage
Greift auf die nachrichtenzuordnung zu, die von dwMsgMapID in einer CMessageMap
abgeleiteten Klasse identifiziert wird.
virtual BOOL ProcessWindowMessage(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT& lResult,
DWORD dwMsgMapID) = 0;
Parameter
hWnd
[in] Das Handle für das Fenster, das die Nachricht empfängt.
uMsg
[in] Die an das Fenster gesendete Nachricht.
wParam
[in] Zusätzliche nachrichtenspezifische Informationen.
lParam
[in] Zusätzliche nachrichtenspezifische Informationen.
lResult
[out] Das Ergebnis der Nachrichtenverarbeitung.
dwMsgMapID
[in] Der Bezeichner der Nachrichtenzuordnung, die die Nachricht verarbeitet. Die standardmäßige Nachrichtenzuordnung, die mit BEGIN_MSG_MAP deklariert wird, wird durch 0 identifiziert. Eine alternative Nachrichtenzuordnung, die mit ALT_MSG_MAP(msgMapID)deklariert ist, wird durch msgMapID
identifiziert.
Rückgabewert
TRUE, wenn die Nachricht vollständig behandelt wird; andernfalls FALSE.
Hinweise
Wird von der Fensterprozedur eines CContainedWindow-Objekts oder eines Objekts aufgerufen, das dynamisch mit der Nachrichtenzuordnung verkettet wird.
Siehe auch
CDynamicChain-Klasse
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Klassenübersicht