CMessageMap, classe
Cette classe permet d’accéder aux mappages de messages d’un objet par un autre objet.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.
Syntaxe
class ATL_NO_VTABLE CMessageMap
Membres
Méthodes publiques
Nom | Description |
---|---|
CMessageMap ::P rocessWindowMessage | Accède à une carte de messages dans la CMessageMap classe dérivée. |
Notes
CMessageMap
est une classe de base abstraite qui permet d’accéder aux mappages de messages d’un objet par un autre objet. Pour qu’un objet expose ses mappages de messages, sa classe doit dériver de CMessageMap
.
ATL utilise CMessageMap
pour prendre en charge les fenêtres autonomes et le chaînage dynamique de la carte de messages. Par exemple, toute classe contenant un objet CContainedWindow doit dériver de CMessageMap
. Le code suivant est extrait de l’exemple SUBEDIT . Par le biais de CComControl, la CAtlEdit
classe dérive automatiquement de 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()
Étant donné que la fenêtre autonome, , m_EditCtrl
utilise une carte de messages dans la classe conteneur, CAtlEdit
dérive de CMessageMap
.
Pour plus d’informations sur les mappages de messages, consultez l’article « Classes de fenêtre ATL ».
Spécifications
En-tête : atlwin.h
CMessageMap ::P rocessWindowMessage
Accède à la carte de messages identifiée par dwMsgMapID dans une CMessageMap
classe dérivée.
virtual BOOL ProcessWindowMessage(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT& lResult,
DWORD dwMsgMapID) = 0;
Paramètres
hWnd
[in] Handle de la fenêtre qui reçoit le message.
uMsg
[in] Message envoyé à la fenêtre.
wParam
[in] Informations supplémentaires spécifiques aux messages.
lParam
[in] Informations supplémentaires spécifiques aux messages.
lResult
[out] Résultat du traitement des messages.
dwMsgMapID
[in] Identificateur du mappage de messages qui traitera le message. La carte de messages par défaut, déclarée avec BEGIN_MSG_MAP, est identifiée par 0. Une autre carte de messages, déclarée avec ALT_MSG_MAP(msgMapID), est identifiée par msgMapID
.
Valeur de retour
TRUE si le message est entièrement géré ; sinon, FALSE.
Notes
Appelée par la procédure de fenêtre d’un objet CContainedWindow ou d’un objet qui est chaîné dynamiquement vers la carte de messages.
Voir aussi
CDynamicChain, classe
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Vue d’ensemble de la classe