Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот класс позволяет картам сообщений объекта получать доступ к другому объекту.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
class ATL_NO_VTABLE CMessageMap
Участники
Открытые методы
| Имя | Описание |
|---|---|
| CMessageMap::P rocessWindowMessage | Обращается к карте сообщений в производном CMessageMapклассе. |
Замечания
CMessageMap — это абстрактный базовый класс, который позволяет картам сообщений объекта получать доступ к другому объекту. Чтобы объект предоставлял карты сообщений, его класс должен быть производным от CMessageMap.
ATL используется CMessageMap для поддержки автономных окон и динамической цепочки карт сообщений. Например, любой класс, содержащий объект CContainedWindow , должен быть производным от CMessageMap. Следующий код взят из примера SUBEDIT . С помощью CComControlCAtlEdit класс автоматически наследуется от 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()
Так как в автономном окне m_EditCtrlиспользуется карта сообщений в содержающем классе, CAtlEdit наследуется от CMessageMap.
Дополнительные сведения о картах сообщений см . в статье "Карты сообщений" статьи "Классы окон ATL".
Требования
Заголовок: atlwin.h
CMessageMap::P rocessWindowMessage
Обращается к карте сообщений, определяемой dwMsgMapID в производном CMessageMapклассе.
virtual BOOL ProcessWindowMessage(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT& lResult,
DWORD dwMsgMapID) = 0;
Параметры
hWnd
[in] Дескриптор окна, получающего сообщение.
uMsg
[in] Сообщение, отправленное в окно.
wParam
[in] Дополнительные сведения о сообщении.
lParam
[in] Дополнительные сведения о сообщении.
lResult
[out] Результат обработки сообщения.
dwMsgMapID
[in] Идентификатор карты сообщений, обрабатывающей сообщение. Карта сообщений по умолчанию, объявленная с BEGIN_MSG_MAP, определяется по 0. Альтернативная карта сообщений, объявленная с ALT_MSG_MAP(msgMapID), определяется по msgMapID.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если сообщение полностью обработано; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Вызывается процедурой окна объекта CContainedWindow или объекта, который динамически цепляется на карту сообщений.
См. также
Класс CDynamicChain
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Общие сведения о классе