Запись процедуры дочернего окна
Подобно процедуре рамочного окна, процедура дочернего окна MDI использует специальную функцию для того, чтобы обрабатывать сообщения по умолчанию. Все сообщения, которые процедура дочернего окна не обрабатывает, должны передаваться в функцию DefMDIChildProc, а не в функцию DefWindowProc. Кроме того, некоторые сообщения управляющие окном должны передаваться в DefMDIChildProc, даже если приложение обрабатывает сообщение для функций MDI правильно. Следующие сообщения приложение должно передавать в 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. |