Поделиться через


TN024: MFC- Указанные сообщения и ресурсы

ПримечаниеПримечание

Следующая техническая заметка не была обновлена со времени сначала была включена в подключенной документации.В результате некоторые процедуры и разделы могут оказаться устаревшей или неверны.Последние новости, рекомендуется поиск раздела процента в подключенном индексу документации.

Эта заметка описывает внутренние сообщения windows и форматы ресурсов, используемых MFC.Эта информация описывает реализацию границ и помогает в отладке приложения.Для авантюрного, даже если все эти сведения о формальном не поддерживается, можно использовать некоторые из этих сведений для сложных фильтров.

Эта заметка содержит подробные сведения о реализации MFC закрытые; все содержимое может изменяться в будущем.Сообщения окна MFC закрытые имеющие смысл только в области одного приложения, но изменяются в будущем для хранения всей системы сообщения.

Диапазон сообщений окна MFC, закрытых и типы ресурсов в наборе диапазонов «system» зарезервировано в сторону Microsoft Windows.В настоящее время не все числа в диапазонах используются и в будущем новых чисел в диапазоне, могут быть использованы.В настоящее время, используемые числа могут быть изменены.

Сообщения окна MFC закрытые в диапазоне 0x360->0x37F.

Типы ресурсов MFC закрытые в диапазоне 0xF0->0xFF.

Сообщения окна MFC закрытые

Эти сообщения окон используются вместо виртуальных функций C++, где требуется свободное соединение между объектами относительно окна и виртуальной функции C++ не была бы подходящей.

Эти конфиденциальные сообщения windows и связанные структуры параметра объявляются в заголовке «AFXPRIV.H» MFC частном.Предупреждать, любой из программного кода, который включает этот заголовок могут полагаться на недокументированную расширения функциональности и, возможно, сломают в будущих версиях MFC.

В редком случае обрабатывать одно из следующих сообщений необходимо использовать макрос сопоставления сообщения ON_MESSAGE и обработка сообщения в родовом формате LRESULT/WPARAM/LPARAM.

WM_QUERYAFXWNDPROC

Это сообщение отправляется в окно, чтобы создать.Это очень скоро истекает, в процессе создания, как метод определения AfxWndProc. если WndProc AfxWndProc возвращает 1.

wParam

Не используется

lParam

Не используется

returns

1, если входящие запросы обрабатываются AfxWndProc

WM_SIZEPARENT

Это сообщение отправляется окна фрейма в свои текущие дочерним элементам во время размер (CFrameWnd::OnSize вызывает CFrameWnd::RecalcLayout, которое вызывает CWnd::RepositionBars), чтобы переместить область элементов управления вокруг сторон фрейма.Структура AFX_SIZEPARENTPARAMS содержащий текущий прямоугольник клиента доступен HDWP (родителя и могут иметь значение null), с помощью которого вызван DeferWindowPos чтобы свернуть обновления.

wParam

Не используется

lParam

Адрес структуры AFX_SIZEPARENTPARAMS

returns

Не используется (0)

Игнорировать сообщение указывает на то, что окно не участвует в структуре.

WM_SETMESSAGESTRING

Это сообщение отправляется в фрейме окна для запроса, что он обновляется линия сообщения в строке состояния.Или можно указать идентификатор строки или LPCSTR (но не оба режима).

wParam

Идентификатор строки (или ноль)

lParam

LPCSTR для строки (или NULL)

returns

Не используется (0)

WM_IDLEUPDATECMDUI

Это сообщение отправляется по времени простоя реализовать обновление времени простоя обработчиков пользовательского интерфейса обновление-команды.Если окно панель элементов управления (обычно) обрабатывает сообщение, оно создает объект CCmdUI (или объект производного класса), и вызов CCmdUI::DoUpdate для каждого из элементов» в окне «.Это, в свою очередь, проверяется для обработчика ON_UPDATE_COMMAND_UI для объектов в цепочке команда-обработчика.

wParam

bDisableIfNoHandler BOOL

lParam

Не используется (0)

returns

Не используется (0)

bDisableIfNoHandler ненулевое значение, чтобы отключить объект пользовательского интерфейса если ни ON_UPDATE_COMMAND_UI, ни обработчик ON_COMMAND.

WM_EXITHELPMODE

Это сообщение создано на CFrameWnd, выйти из режима справки контекста учетом регистра.Приходная завершении данного сообщения накладная модальный цикл CFrameWnd::OnContextHelp. started

wParam

Не используется (0)

lParam

Не используется (0)

returns

Не используется

WM_INITIALUPDATE

Это сообщение отправляется шаблоном документа ко всем потомкам фрейма окна, когда можно безопасно для их сделать их начальное обновление.Оно соответствует вызову CView::OnInitialUpdate но может использоваться в любом CWnd- производных классах для другого обновления с первой попытки.

wParam

Не используется (0)

lParam

Не используется (0)

returns

Не используется (0)

WM_RECALCPARENT

Это сообщение отправляется представлением к его родительскому окну (полученный через GetParent) для принудительного повторного вычисления макета (обычно родительский объект без доставки RecalcLayout).Это используется в приложениях OLE-сервер, где требуются для кадра увеличиваться в размерах, так как размер представления полный.

Если родительское окно обрабатывает это сообщение, оно должно возвращать значение true и заполнения ПРЯМОУГОЛЬНИК, переданное lParam с новым размером клиентской области.Это используется в CScrollView, чтобы правильно настроить расположение полосы прокрутки (затем за пределами окна при добавлении), когда объект сервера активированное на месте.

wParam

Не используется (0)

lParam

LPRECT rectClient, может принимать значение null

returns

Значение TRUE, если новый клиент, прямоугольник, возвращенных в противном случае – false

WM_SIZECHILD

Это сообщение отправляется COleResizeBar к своему окну владельцем (через GetOwner), когда пользователь изменяет размер черта размера с маркерами размера.COleIPFrameWnd реагирует на это сообщение, попытка переместить окно фрейма по мере того, как пользователь запросил.

Новый прямоугольник, уступанный клиентские координаты относительно фрейме окна, содержащего черта размера, указанн на lParam.

wParam

Не используется (0)

lParam

RectNew LPRECT

returns

Не используется (0)

WM_DISABLEMODAL

Это сообщение отправляется ко всем окнам имеемым окно всплывающим кадра, выключается.Окно фрейма результат, чтобы определить, использует ли отключить всплывающее окно.

Это можно использовать для выполнения специальной обработки в своем всплывающем окне, когда фрейм вставляет модальное состояние или сохранять некоторые всплывающие окна на получение блокированы.Подсказки, использующих данное сообщение для уничтожения, когда окно фрейма переходит в модальное состояние, например.

wParam

Не используется (0)

lParam

Не используется (0)

returns

Ненулевое значение в NOT отключите окно, 0 указывает на то, что окно будет заблокировано

WM_FLOATSTATUS

Это сообщение отправляется ко всем окнам имеемым окно всплывающим кадра, когда фрейм или активирован деактивации верхнего уровня или другим окном кадра.Это используется в реализации MFS_SYNCACTIVE в CMiniFrameWnd, для хранения этих всплывающих окон активацию в синхронизации с активацией фрейма окна верхнего уровня.

wParam

Одно из следующих значений:

FS_SHOW

FS_HIDE

FS_ACTIVATE

FS_DEACTIVATE

FS_ENABLEFS_DISABLE

FS_SYNCACTIVE

lParam

Не используется (0)

Возвращаемое значение должно иметь ненулевое значение, если FS_SYNCACTIVE набор и окно syncronizes его активация с родительским кадром.CMiniFrameWnd возвращает ненулевое, если стиль имеет значение MFS_SYNCACTIVE.

Дополнительные сведения см. в разделе реализация CMiniFrameWnd.

WM_ACTIVATETOPLEVEL

Это сообщение отправлено окну верхнего уровня при деактивации окна или активированы в группе» или «верхнего уровня.Окно верхнего уровня в состав группы, если это окно верхнего уровня (без родительского объекта или владелец) или он принадлежит таким окном.Это сообщение также используется в WM_ACTIVATEAPP, но работает в ситуациях, когда окна, принадлежащие другим процессам смешаны в одной иерархией окон (общей в приложениях OLE).

WM_COMMANDHELP, WM_HELPHITTEST, WM_EXITHELPMODE

Эти сообщения используются в реализации контекстной справки.Пример см. в Техническая примечание 28 дополнительные сведения.

Частные форматы ресурсов MFC

В настоящее время MFC определяет формат 2 закрытых ресурсов: RT_TOOLBAR и RT_DLGINIT.

Формат ресурса RT_TOOLBAR

По умолчанию панель инструментов, предоставляемая AppWizard основана на ресурсе RT_TOOLBAR пользовательском, который появился в MFC 4.0.Можно изменить этот ресурс с помощью редактора панели инструментов.

Формат ресурса RT_DLGINIT

Один формат ресурсов MFC закрытый используется для хранения дополнительных данных об инициализации диалогового окна.Это включает исходные строки, хранящихся в поле со списком.Формат этого ресурса не создана вручную необходимо редактировать, но обрабатывается Visual C++.

Для использующих Visual C++ и этот ресурс RT_DLGINIT связанные функции MFC, поскольку новые API-интерфейсы к использованию сведений в ресурсе.С помощью Visual C++ позволяет намного проще написать, поддерживать и перевести приложение в дальнего диапазона.

Базовая структура ресурса RT_DLGINIT следующим образом:

+---------------+                    \
| Control ID    |   UINT             |
+---------------+                    |
| Message #     |   UINT             |
+---------------+                    |
|length of data |   DWORD            |
+---------------+                    |   Repeated
|   Data        |   Variable Length  |   for each control
|   ...         |   and Format       |   and message
+---------------+                    /
|     0         |   BYTE
+---------------+

Повторный раздел содержит идентификатор элемента управления, которому отправляется сообщение, отправить сообщение # (либо нормальное сообщение windows) и имеет переменную длину данных.Сообщение отправлено в форме windows:

SendDlgItemMessage(<Control ID>, <Message #>, 0, &<Data>);

Это очень общий формат, разрешая любые сообщения windows и содержимое данных.Редактор ресурсов Visual C++ и MFC поддерживают только ограниченный набор сообщений окон: CB_ADDSTRING для начальных список-выборов для полей со списками (данные текстовая строка).

См. также

Другие ресурсы

Технические замечания по номеру

Технические замечания по категориям