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


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

См. также

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

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

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