Win32 API. Справочник по стандартному диалоговому окну
Страница 18. Фильтр - процедура PageSetupHook


Фильтр - процедура PageSetupHook

Фильтр - процедура PageSetupHook является определенная программой или определяемая библиотекой процедура, которая используется стандартным диалоговым окном Параметры страницы (Page Setup). Фильтр - процедура принимает сообщения или предупреждения, предназначенные для процедуры блока диалога по умолчанию.

Синтаксис.

UINT APIENTRY PageSetupHook
(
HWND hdlg,// дескриптор окна блока диалога
UINT uiMsg,// идентификатор сообщения
WPARAM wParam,// параметр сообщения
LPARAM lParam // параметр сообщения
);

Параметры
hdlg
Дескриптор окна блока диалога Параметры страницы, для которого предназначено сообщение.
uiMsg
Идентифицирует принимаемое сообщение.
wParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
lParam
Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg.
Если параметр uiMsg показывает сообщение WM_INITDIALOG, lParam - указатель на структуру PAGESETUPDLG, содержащую значения, которые определены, когда было создано стандартное диалоговое окно.

Возвращаемые значения
Если фильтр - процедура возвращает значение нуль, заданная по умолчанию процедура диалогового окна обрабатывает сообщение.
Если фильтр - процедура возвращает значение отличное от нуля, заданная по умолчанию процедура диалогового окна игнорирует сообщение.

Замечания
Когда вы используете функцию PageSetupDlg, чтобы создать стандартное диалоговое окно Параметры страницы, вы можете предоставить фильтр - процедуру PageSetupHook, чтобы обрабатывать сообщения или предупреждения, предназначенные для процедуры диалогового окна. Чтобы разрешить действие фильтр - процедуры, используйте структуру PAGESETUPDLG, которую вы передали в функцию создающую диалоговое окно. Установите указатель на фильтр - процедуру в элементе lpfnPageSetupHook, а в элементе Flags установите флажок PSD_ENABLEPAGESETUPHOOK.
Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его фильтр - процедуре. Хотя все другие сообщения, фильтр - процедура принимает первая. Затем, возвращаемое значение фильтр - процедуры определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если фильтр - процедура обрабатывает какое-либо сообщение WM_CTLCOLOR*, она должна возвратить допустимый дескриптор кисти для закрашивания фона определяемого элемента управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, она может вызывать функцию PostMessage, чтобы послать процедуре диалогового окна сообщение WM_COMMAND со значением IDABORT. Отправка сообщения IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете поделить на подклассы стандартные элементы управления общего диалогового окна. Однако, и процедура стандартного диалогового окна также может делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные элементом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна.
PageSetupHook - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPPAGESETUPHOOK - указатель на фильтр - процедуру PageSetupHook.

Смотри также
EndDialog, PageSetupDlg, PAGESETUPDLG, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG

Размещение и совместимость PageSetupHook

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотекаОпределяется пользователем
Заголовочный файлcommdlg.h
УникодНет
Замечания по платформеLPPAGESETUPHOOK

 

 
« Предыдущая статья   Следующая статья »