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


Функция DefMDIChildProcA (winuser.h)

Обеспечивает обработку по умолчанию для любого сообщения окна, которое не обрабатывается процедурой окна дочернего окна с несколькими документами (MDI). Сообщение окна, не обработанное процедурой window, должно передаваться в функцию DefMDIChildProc , а не в функцию DefWindowProc .

Синтаксис

LRESULT LRESULT DefMDIChildProcA(
  [in] HWND   hWnd,
  [in] UINT   uMsg,
  [in] WPARAM wParam,
  [in] LPARAM lParam
);

Параметры

[in] hWnd

Тип: HWND

Дескриптор дочернего окна MDI.

[in] uMsg

Тип: UINT

Сообщение, которое нужно обработать.

[in] wParam

Тип: WPARAM

Дополнительные сведения, относящиеся к сообщению.

[in] lParam

Тип: LPARAM

Дополнительные сведения, относящиеся к сообщению.

Возвращаемое значение

Тип: LRESULT

Возвращаемое значение указывает результат обработки сообщения и зависит от сообщения.

Комментарии

Функция DefMDIChildProc предполагает, что родительское окно дочернего окна MDI, определенного параметром hWnd , было создано с помощью класса MDICLIENT .

Если процедура окна приложения не обрабатывает сообщение, обычно оно передается в функцию DefWindowProc для обработки сообщения. Приложения MDI используют функции DefFrameProc и DefMDIChildProc вместо DefWindowProc , чтобы обеспечить обработку сообщений по умолчанию. Все сообщения, которые приложение обычно передает в DefWindowProc (например, неклиентные сообщения и сообщения WM_SETTEXT ), следует передавать в DefMDIChildProc . Кроме того, DefMDIChildProc также обрабатывает следующие сообщения.

Сообщение Ответ
WM_CHILDACTIVATE Выполняет обработку активации при размере, перемещении или отображении дочерних окон MDI. Это сообщение должно быть передано.
WM_GETMINMAXINFO Вычисляет размер развернутого дочернего окна MDI на основе текущего размера клиентского окна MDI.
WM_MENUCHAR Передает сообщение в окно фрейма MDI.
WM_MOVE Пересчитывает клиентские полосы прокрутки MDI, если они присутствуют.
WM_SETFOCUS Активирует дочернее окно, если оно не является активным дочерним окном MDI.
WM_SIZE Выполняет операции, необходимые для изменения размера окна, особенно для максимизации или восстановления дочернего окна MDI. Если не передать это сообщение в функцию DefMDIChildProc , это приводит к крайне нежелательным результатам.
WM_SYSCOMMAND Обрабатывает команды меню окна: SC_NEXTWINDOW, SC_PREVWINDOW, SC_MOVE, SC_SIZE и SC_MAXIMIZE.
 

Примечание

Заголовок winuser.h определяет DefMDIChildProc в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

Основные понятия

DefFrameProc

DefWindowProc

Интерфейс нескольких документов

Справочные материалы

WM_CHILDACTIVATE

WM_GETMINMAXINFO

WM_MENUCHAR

WM_MOVE

WM_SETFOCUS

WM_SETTEXT

WM_SIZE

WM_SYSCOMMAND