TN024. Сообщения и ресурсы, определенные MFC
Примечание
Следующее техническое примечание не было обновлено, поскольку сначала оно было включено в электронную документацию.В результате некоторые процедуры и разделы могут быть устаревшими или неверными.Для получения последних сведений рекомендуется выполнить поиск интересующей темы в алфавитном указателе документации в Интернете.
Эта заметка описывает внутренние сообщения Windows и форматы ресурсов, используемых MFC. Эти сведения в реализацию платформы и помогут при отладке приложения. Для авантюрного даже если все эти сведения официально не поддерживаются, можно использовать некоторые из этих дополнительных сведений для реализаций.
Эта заметка содержит подробности реализации MFC закрытые; все содержимое могут изменяться в будущем. Сообщения Windows MFC закрытые имеют значение в области одного приложения, но только изменения в будущем, чтобы содержать системные сообщения.
Диапазон сообщений Windows MFC закрытым и типы ресурсов в диапазоне «зарезервировано системы» set в сторону Microsoft Windows. В настоящее время не все числа в группах используются и в будущем, новые числа в диапазоне от могут использоваться. В настоящее время, используемые числа могут быть изменены.
Сообщения Windows MFC закрытых в диапазоне 0x360-0x37F>.
Типы ресурсов MFC закрытых в диапазоне 0xF0-0xFF>.
Сообщения Windows MFC закрытые
Эти сообщения Windows используются вместо функций C++ виртуальных относительно свободное соединения следует между объектами окна и где функция C++ виртуальной не может быть оправдана.
Эти закрытые сообщения Windows и соответствующие структуры параметра объявляются в заголовке» личное «AFXPRIV.H MFC. Предупредите, любой из кода, который включает этот заголовок могут зависеть от незадокументированном расширения функциональности и, возможно, изменения в будущих версиях MFC.
В редких случаях использования обработки одно из этих сообщений необходимо использовать макрос сопоставления сообщений ON_MESSAGE и обработать сообщение в формате универсального LRESULT/WPARAM/LPARAM шаблона.
WM_QUERYAFXWNDPROC
Это сообщение отправляется в окно, создание. Это очень рано, отправляемых в процессе создания как метод, если определение WndProc AfxWndProc. 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. содержит
wParam |
Не используется (0) |
lParam |
Не используется (0) |
returns |
Не используется |
WM_INITIALUPDATE
Это сообщение отправляется шаблоном документов ко всем потомкам фреймового окна при безопасном для их для их начальное обновление. Он сопоставляет к вызову CView::OnInitialUpdate, но может использоваться в другом CWnd- производных классов для другой одноразовый обновления.
wParam |
Не используется (0) |
lParam |
Не используется (0) |
returns |
Не используется (0) |
WM_RECALCPARENT
Это сообщение отправляется представлением своему родительскому окну (полученному через GetParent) для обеспечения пересчет макета (обычно вызывает родительский RecalcLayout). Используется в приложениях OLE-сервера, необходимых для кадра перерасти в размере как общий размер представления увеличивается.
Если процессы родительского окна это сообщение, то она должна возвращает TRUE и заполняет RECT переданное в 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,, но работает в ситуациях, когда окна, относящийся к другим процессам смешаны в одной иерархией окон (shared в приложениях 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 поддерживают только ограниченное подмножество сообщений Windows: CB_ADDSTRING для начальных список- вариантов для поля со списком (данные текстовая строка).