classe CMessageMap
CMessageMap è una classe base astratta che consente il messaggio di un oggetto mappe per essere accessibili da un altro oggetto. Affinché un oggetto per esporre le sue mappe messaggi, la sua classe deve derivare da CMessageMap.
ATL utilizza CMessageMap per contenuti di supporto di windows e mappa dinamica messaggio a catena. Ad esempio, qualsiasi classe che contiene un oggetto CContainedWindow deve derivare da CMessageMap. Il codice seguente è tratto dalla esempio SUBEDIT . Attraverso CComControl, la CAtlEdit classe deriva automaticamente da CMessageMap.
classe CAtlEdit: CComControllt pubblica;CAtlEdit >,...
/ / CComControl deriva da CWindowImpl,
/ / che deriva da CMessageMap
{
pubblica:
/ / Dichiara un membro dati contenute finestra
CContainedWindow m_EditCtrl;
/ / Initialize della finestra contenuta:
// 1. Passare a "Modifica" per specificare che il contenuto / / finestra dovrebbe essere basato sullo standard / / casella Edit di Windows
// 2. Passare il puntatore 'this' per specificare che CAtlEdit / / contiene la mappa di messaggi da utilizzare per il / / elaborazione contenuti della finestra
// 3. Passare l'identificatore di mappa messaggi. In
/ / questo caso, '1' identifica la mappa dei messaggi
/ / dichiarata con ALT_MSG_MAP(1)
CAtlEdit(): m_EditCtrl(_T("EDIT"), questo, 1)
{
m_bWindowOnly = TRUE;
}
/ / Declare la mappa messaggi predefinita
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
...
/ / Dichiara una mappa di messaggio alternativo,
/ / identificato dal '1'
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_CHAR, OnChar)
END_MSG_MAP()
...
};
Perché la finestra contenuta, m_EditCtrl , userà una mappa messaggi nella classe che contiene, CAtlEdit deriva da CMessageMap.
Per ulteriori informazioni su mappe messaggi, vedere Mappe messaggio nell'articolo "Classi finestra ATL."
# include lt;atlwin.h>
Vedere anchenbsp;CDynamicChain, BEGI&N_MSG_MAP, ALT_MSG_MAP