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 для начальных список-выборов для полей со списками (данные текстовая строка).