Обработка сообщений диалогового окна по умолчанию


Оконная процедура предопределенного класса диалогового окна выполняет  обработку по умолчанию всех сообщений, которые не обрабатывает процедура диалогового окна. Когда процедура диалогового окна возвращает значение ЛОЖЬ (FALSE) для какого-либо сообщения, предопределенная оконная процедура проверяет сообщения и осуществляет нижеследующие заданные по умолчанию действия:

Сообщение

Действие по умолчанию

DM_GETDEFID Вы можете отправить это сообщение диалоговому окну. Диалоговое окно возвращает идентификатор органа управления заданной по умолчанию командной кнопки, если в блоке диалога она есть; в противном случае, окно возвращает нуль.
DM_REPOSITION Вы можете отправить это сообщение диалоговому окну верхнего уровня. Диалоговое окно изменит свое положение, так чтобы помещаться в пределах области рабочего стола.
DM_SETDEFID Вы можете отправить это сообщение диалоговому окну. Диалоговое окно устанавливает заданную по умолчанию командную кнопку в орган управления, заданный идентификатором органа управления в параметре wParam.
WM_ACTIVATE Если диалоговое окно становится активным, восстанавливает фокус ввода данных в органе управления, идентифицированным предварительно сохраненным дескриптором. В противном случае, процедура сохраняет дескриптор органа управления, владеющего фокусом ввода данных.
WM_CHARTOITEM Возвращает нуль.
WM_CLOSE Посылает уведомительное сообщение BN_CLICKED диалоговому окну, определяя IDCANCEL как идентификатор органа управления. Если диалоговое окно имеет идентификатор органа управления IDCANCEL, а орган управления в текущий момент отключен, процедура подает сигнал предупреждения и не посылает сообщение.
WM_COMPAREITEM Возвращает нуль.
WM_ERASEBKGND Закрашивает рабочую область диалогового окна, используя или кисть, возвращенную из сообщения WM_CTLCOLORDLG или заданным по умолчанию цветом окна.
WM_GETFONT Возвращает дескриптор определяемого программой шрифта диалогового окна.
WM_INITDIALOG Возвращает нуль.
WM_LBUTTONDOWN Отправляет сообщение CB_SHOWDROPDOWN комбинированному окну, имеющему фокус ввода данных, предписывая органу управления скрыть его выпадающее окно списка. Процедура вызывает DefWindowProc, чтобы завершить заданное по умолчанию действие.
WM_NCDESTROY Освобождает глобальную память, распределенную для полей редактирования текста в диалоговом окне (применяется к блокам диалога, в которых установлен стиль DS_LOCALEDIT) и освобождает любой определяемый программой шрифт (применяется к диалоговым окнам, в которых установлен стиль DS_SETFONT или DS_SHELLFONT ). Процедура вызывает функцию DefWindowProc, чтобы завершить заданное по умолчанию действие.
WM_NCLBUTTONDOWN Отправляет сообщение CB_SHOWDROPDOWN комбинированному окну, имеющему фокус ввода данных, предписывая органу управления скрыть его выпадающее окно списка. Процедура вызывает DefWindowProc, чтобы завершить заданное по умолчанию действие.
WM_NEXTDLGCTL Устанавливает фокус ввода данных в следующем или предыдущем органе управления в диалоговом окне, которое  идентифицировано дескриптором в параметре wParam , или в первом органе управления блока диалога, которое является видимым, не заблокированным и имеет стиль WS_TABSTOP. Процедура игнорирует это сообщение, если текущее окно с фокусом ввода данных - не орган управления.
WM_SETFOCUS Устанавливает фокус ввода данных в орган управления, предварительно идентифицированный сохраненным дескриптором окна органа управления. Если такой дескриптор не существует, процедура устанавливает фокус ввода данных в первом органе управления в шаблоне диалогового окна, который является видимым, не заблокированным  имеет стиль WS_TABSTOP. Если и такой орган управления не существует, процедура устанавливает фокус ввода данных в первый орган управления в шаблоне.
WM_SHOWWINDOW  Если блок диалога скрывается, то сохраняет дескриптор органа управления, имеющего фокус ввода данных, затем вызывает DefWindowProc, чтобы завершить заданное по умолчанию действие.
WM_SYSCOMMAND  Если блок диалога свертывается, то сохраняет дескриптор органа управления, имеющего фокус ввода данных, затем вызывает DefWindowProc, чтобы завершить заданное по умолчанию действие.
WM_VKEYTOITEM Возвращает нуль.

Предопределенная оконная процедура переправляет все другие сообщения в DefWindowProc для заданной по умолчанию обработки.

Назад в оглавление
На главную страницу

Hosted by uCoz