Страница 18 из 59
Фильтр - процедура 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
|