Метод IPrintDialogCallback::HandleMessage 

Функция PrintDlgEx вызывает интерфейсный  метод IPrintDialogCallback::HandleMessage, чтобы  дать вашему приложению возможность обрабатывать сообщения, отправленные дочернему диалоговому окну в нижней части Общей (General) страницы набора страниц Свойства печати (Print Property Sheet). Дочернее диалоговое окно содержит точно такие же органы управления, что и диалоговое окно Печать (Print).

Синтаксис

HRESULT HandleMessage(
    HWND hDlg,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* pResult
);

Параметры

hDlg

Дескриптор дочернего диалогового окна в нижней части Общей (General) страницы.

uMsg

Идентифицирует принимаемое сообщение.

 wParam

Устанавливает дополнительную информацию о сообщении. Точное значение зависит от величины uMsg параметра.

lParam

Устанавливает дополнительную информацию о сообщении. Точное значение зависит от величины uMsg параметра.

Если параметр uMsg обозначает сообщение WM_INITDIALOG, то lParam - указатель на структуру PRINTDLGEX, содержащую значения, определяемые когда создавался набор страниц свойств.

pResult

Указатель на переменную, которая обозначает результат, который возвратиться для сообщения процедурой диалогового окна . Указанное значение должно быть ИСТИНА (TRUE), если Вы обрабатываете сообщение, в противном случае оно должно быть ЛОЖЬ (FALSE) или, независимо от этого,  соответствующее значение согласно типу сообщения.

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

Возвращаемо значение S_OK, если ваша реализация IPrintDialogCallback::HandleMessage  обработало сообщение. В этой ситуации, функция PrintDlgEx не выполняет какую - либо заданную по умолчанию обработку сообщения.

Возвращаемое значение S_FALSE, если Вы хотите, чтобы PrintDlgEx выполнила свою заданную по умолчанию обработку сообщения.

Замечания

Поскольку уведомительные сообщения  передаются при помощи сообщения WM_NOTIFY, Вы должны использовать функцию SetWindowLong со значением DWL_MSGRESULT, чтобы установить возвращаемое значение. Когда Вы вызываете функцию SetWindowLong, используете GetParent (hDlg), чтобы установить значение DWL_MSGRESULT Общей (General) страницы, которая является родителем дочернего окна.

Заданная по умолчанию процедура блока диалога для дочернего окна в нижней части Общей (General) страницы обрабатывает сообщение WM_INITDIALOG  перед передачей его в метод IPrintDialogCallback::HandleMessage. Все другие сообщения, отправленные дочернему окну, IPrintDialogCallback::HandleMessage получает первым. Затем IPrintDialogCallback::HandleMessage возвращает значение, которое обуславливает, обрабатывать ли заданной по умолчанию процедуре диалогового окна сообщение или проигнорировать его.

Если метод IPrintDialogCallback::HandleMessage обрабатывает сообщение WM_CTLCOLORDLG то, он должен возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если IPrintDialogCallback::HandleMessage обрабатывает какое-либо сообщение WM_CTLCOLOR*, то должен возвратить допустимый дескриптор кисти для закрашивания фона заданного органа управления.

Не вызывайте функцию EndDialog из метода IPrintDialogCallback::HandleMessage. Вместо этого он может вызвать функцию PostMessage, чтобы поместить сообщение WM_COMMAND со значением IDABORT в процедуру диалогового окна. Извещение IDABORT закрывает Набор страниц Свойств печати (Print Property Sheet) и заставляет функцию PrintDlgEx возвратить значение PD_RESULT_CANCEL в члене dwResultAction структуры PRINTDLGEX. Если вам нужно узнать, почему IPrintDialogCallback::HandleMessage закрыл блок диалога, вы должны предусмотреть свой собственный механизм связи между методом IPrintDialogCallback::HandleMessage и вашей прикладной программой.

Вы можете поделить на подклассы стандартные органы управления дочернего диалогового окна  в нижней части Общей (General) страницы. Эти стандартные органы управления подобны таким же элементам, находящимся в диалоговом окне Печать (Print) Однако и процедура диалогового окна по умолчанию может также поделить на подклассы органы управления. По этой причине, вы должны делить на подклассы органы управления тогда, когда ваш метод IPrintDialogCallback::HandleMessage обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные органом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна.

Смотри также 

Обзор Библиотека стандартных диалоговых оконИнтерфейсные методы, используемые библиотекой стандартных диалоговых окон, EndDialog, PostMessage, PrintDlgEx, PRINTDLGEX, SetWindowLong, WM_COMMAND, WM_CTLCOLORDLG, WM_INITDIALOG, WM_NOTIFY

Размещение и совместимость IPrintDialogCallback::HandleMessage

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Нет

Windows Me

Нет

Windows 98

Нет

Windows 95

Нет

Используемая библиотека

-

Заголовочный файл

 

- объявлено в

Commdlg.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

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

Hosted by uCoz