Condividi tramite


Classe CMessageMap

Questa classe consente di accedere alle mappe messaggi di un oggetto da un altro oggetto.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

class ATL_NO_VTABLE CMessageMap

Membri

Metodi pubblici

Nome Descrizione
CMessageMap::P rocessWindowMessage Accede a una mappa messaggi nella CMessageMapclasse derivata da .

Osservazioni:

CMessageMap è una classe di base astratta che consente l'accesso alle mappe messaggi di un oggetto da un altro oggetto. Affinché un oggetto esponga le mappe messaggi, la relativa classe deve derivare da CMessageMap.

ATL usa CMessageMap per supportare le finestre contenute e il concatenamento di mappe messaggi dinamiche. Ad esempio, qualsiasi classe contenente un oggetto CContainedWindow deve derivare da CMessageMap. Il codice seguente è tratto dall'esempio SUBEDIT . Tramite CComControl, la CAtlEdit classe deriva automaticamente da 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()

Poiché la finestra contenuta, m_EditCtrl, userà una mappa messaggi nella classe contenitore, CAtlEdit deriva da CMessageMap.

Per altre informazioni sulle mappe messaggi, vedere Mappe messaggi nell'articolo "Classi finestra ATL".

Requisiti

Intestazione: atlwin.h

CMessageMap::P rocessWindowMessage

Accede alla mappa messaggi identificata da dwMsgMapID in una CMessageMapclasse derivata da .

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

Parametri

hWnd
[in] Handle della finestra che riceve il messaggio.

uMsg
[in] Messaggio inviato alla finestra.

wParam
[in] Informazioni aggiuntive specifiche del messaggio.

lParam
[in] Informazioni aggiuntive specifiche del messaggio.

lResult
[out] Risultato dell'elaborazione del messaggio.

dwMsgMapID
[in] Identificatore della mappa messaggi che elabora il messaggio. La mappa dei messaggi predefinita, dichiarata con BEGIN_MSG_MAP, è identificata da 0. Una mappa dei messaggi alternativa, dichiarata con ALT_MSG_MAP(msgMapID), viene identificata da msgMapID.

Valore restituito

TRUE se il messaggio è completamente gestito; in caso contrario, FALSE.

Osservazioni:

Chiamato dalla routine della finestra di un oggetto CContainedWindow o di un oggetto che esegue il concatenamento dinamico alla mappa dei messaggi.

Vedi anche

Classe CDynamicChain
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Cenni preliminari sulla classe