Classe CMessageMap
Esta classe permite a mensagem um objeto mapeia para ser acessado por outro objeto.
class ATL_NO_VTABLE CMessageMap
Comentários
CMessageMap é uma classe base abstrata que permite que mensagem um objeto mapeia para ser acessado por outro objeto. A fim de um objeto para expor seus mapas de mensagem, sua classe deve derivar de CMessageMap.
Usa o ATLCMessageMap para oferecer suporte a janelas contidas e encadeamento de MAP dinâmica de mensagem. Por exemplo, de qualquer classe que contém um CContainedWindow objeto deve derivar de CMessageMap. O código a seguir é tirado do SUBEDIT amostra.Por meio de CComControl, the CAtlEdit classe automaticamente deriva 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()
Como a janela contida, m_EditCtrl, usará um MAP da mensagem em classe recipiente, CAtlEdit deriva da CMessageMap.
Para obter mais informações sobre mapas de mensagem, consulte Mapas de mensagem no artigo "ATL janela Classes".
Requisitos
Cabeçalho: atlwin.h