Clase CMessageMap
Esta clase permite que los mapas de mensajes de un objeto tengan acceso a otros.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
class ATL_NO_VTABLE CMessageMap
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
CMessageMap::ProcessWindowMessage | Obtiene acceso a un mapa de mensajes en la derivada de CMessageMap . |
Comentarios
CMessageMap
es una clase base abstracta que permite que otro objeto acceda a los mapas de mensajes de un objeto. Para que un objeto exponga el mapa de mensajes, la clase debe derivar de CMessageMap
.
ATL usa CMessageMap
para admitir ventanas independientes y encadenamiento dinámico de mapas de mensajes. Por ejemplo, cualquier clase que contenga un objeto CContainedWindow debe derivar de CMessageMap
. El siguiente código de ejemplo está tomado del ejemplo SUBEDIT. A través de CComControl, la clase CAtlEdit
deriva automáticamente 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()
Con la ventana contenida, m_EditCtrl
, usará un mapa de mensajes en la clase contenedora, CAtlEdit
derivada de CMessageMap
.
Para más información sobre los mapas de mensajes, vea Mapas de mensajes en el artículo "Clases de ventanas ATL".
Requisitos
Encabezado: atlwin.h
CMessageMap::ProcessWindowMessage
Obtiene acceso al mapa de mensajes identificado por dwMsgMapID en una clase derivada de CMessageMap
.
virtual BOOL ProcessWindowMessage(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT& lResult,
DWORD dwMsgMapID) = 0;
Parámetros
hWnd
[in] Identificador de la ventana que recibe el mensaje.
uMsg
[in] Mensaje enviado a la ventana.
wParam
[in] Información adicional específica del mensaje.
lParam
[in] Información adicional específica del mensaje.
lResult
[out] Resultado del procesamiento de mensajes.
dwMsgMapID
[in] Identificador del mapa de mensajes que procesará el mensaje. El mapa de mensajes predeterminado, declarado con BEGIN_MSG_MAP, se identifica con 0. Un mapa de mensajes alternativo, declarado con ALT_MSG_MAP(msgMapID) se identifica con msgMapID
.
Valor devuelto
TRUE si el mensaje está completamente controlado; de lo contrario, FALSE.
Comentarios
Llamada del procedimiento de ventana de un objeto CContainedWindow o de un objeto que se encadena dinámicamente al mapa de mensajes.
Consulte también
CDynamicChain (clase)
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Información general sobre la clase