CMessageMap, classe
Cette classe permet aux tables des messages d'un objet pour être accès par un autre objet.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.
class ATL_NO_VTABLE CMessageMap
Membres
Méthodes publiques
Nom |
Description |
---|---|
Accède à une table des messages dans CMessageMapclasse dérivée. |
Notes
CMessageMap est une classe de base abstraite qui fournit les tables des messages d'un objet soient accessibles par un autre objet. Pour qu'un objet expose ses tables des messages, la classe doit dériver d' CMessageMap.
ATL utilise CMessageMap pour prendre en charge les fenêtres contenues et le chaînage dynamique de table des messages. Par exemple, une classe contenant un objet de CContainedWindow doit dériver d' CMessageMap. Le code suivant est pris de l'exemple de SUBEDIT . Par CComControl, la classe d' CAtlEdit dérive automatiquement d' 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 contenue, m_EditCtrl, utilise une table des messages dans la classe conteneur, CAtlEdit dérive d' CMessageMap.
Pour plus d'informations sur les tables des messages, consultez tables des messages dans l'article « classes de fenêtres ATL. »
Configuration requise
Header: atlwin.h