Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Этот класс позволяет картам сообщений объекта получать доступ к другому объекту.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения 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)
Общие сведения о классе