CMessageMap-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Met deze klasse kunnen de berichttoewijzingen van een object worden geopend door een ander object.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

class ATL_NO_VTABLE CMessageMap

Leden

Openbare methoden

Naam Description
CMessageMap::P rocessWindowMessage Hiermee opent u een berichtkaart in de CMessageMap-afgeleide klasse.

Opmerkingen

CMessageMap is een abstracte basisklasse waarmee de berichttoewijzingen van een object kunnen worden geopend door een ander object. Als u wilt dat een object de berichttoewijzingen weergeeft, moet de klasse ervan zijn afgeleid van CMessageMap.

ATL gebruikt CMessageMap ter ondersteuning van ingesloten vensters en dynamische berichttoewijzingsketens. Een klasse met een CContainedWindow-object moet bijvoorbeeld worden afgeleid van CMessageMap. De volgende code is afkomstig uit het voorbeeld SUBEDIT . Via CComControl wordt de CAtlEdit klasse automatisch afgeleid van 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()

Omdat het ingesloten venster een m_EditCtrlberichtkaart in de bevatde klasse gebruikt, CAtlEdit afgeleid van CMessageMap.

Zie Berichtkaarten in het artikel 'ATL-vensterklassen' voor meer informatie over berichttoewijzingen.

Requirements

Koptekst: atlwin.h

CMessageMap::P rocessWindowMessage

Hiermee opent u de berichttoewijzing die is geïdentificeerd door dwMsgMapID in een CMessageMap-afgeleide klasse.

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

Parameterwaarden

hWnd
[in] De greep naar het venster dat het bericht ontvangt.

uMsg
[in] Het bericht dat naar het venster is verzonden.

wParam
[in] Aanvullende berichtspecifieke informatie.

lParam
[in] Aanvullende berichtspecifieke informatie.

lResult
[uit] Het resultaat van de berichtverwerking.

dwMsgMapID
[in] De id van de berichttoewijzing waarmee het bericht wordt verwerkt. De standaardberichttoewijzing, gedeclareerd met BEGIN_MSG_MAP, wordt geïdentificeerd door 0. Een alternatieve berichtkaart, gedeclareerd met ALT_MSG_MAP(msgMapID), wordt geïdentificeerd door msgMapID.

Retourwaarde

WAAR als het bericht volledig wordt verwerkt; anders, ONWAAR.

Opmerkingen

Aangeroepen door de vensterprocedure van een CContainedWindow-object of van een object dat dynamisch is gekoppeld aan de berichttoewijzing.

Zie ook

CDynamicChain-klasse
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Overzicht van klassen