Страница 20 из 59
Фильтр - процедура SetupHookProc Фильтр - процедура SetupHookProc - определяемая программой или определяемая библиотекой процедура обратного вызова, которая используется стандартным диалоговым окном Установки для печати (Print Setup). Фильтр - процедура передает сообщения или предупреждения, предназначенные для процедуры диалогового окна по умолчанию. Синтаксис UINT APIENTRY SetupHookProc (
HWND hdlg,// дескриптор окна блока диалога UINT uiMsg,// идентификатор сообщения WPARAM wParam,// параметр сообщения LPARAM lParam // параметр сообщения );
Параметры hdlg Дескриптор окна стандартного блока диалога Установки для печати (Print Setup), для которого предназначено сообщение. uiMsg Идентифицирует принимаемое сообщение. wParam Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg. lParam Определяет дополнительную информацию о сообщении. Точное значение зависит от значения параметра uiMsg. Возвращаемые значения Если фильтр - процедура возвращает значение ноль, это значит по умолчанию процедура диалогового окна обрабатывает сообщение. Если фильтр - процедура возвращает не нулевое значение, по умолчанию процедура диалогового окна игнорирует сообщение. Замечания Диалоговое окно Установки для печати (Print Setup) было заменено блоком диалога Параметры страницы(Page Setup), которое должно использоваться новыми прикладными программами, написанными для Windows NT или Windows 95. Однако, для совместимости с более ранними версиями Windows, функция PrintDlg продолжает поддерживать отображение на экране диалогового окна Установки для печати (Print Setup). Вы можете предоставить фильтр - процедуру SetupHookProc для диалогового окна Установки для печати (Print Setup), чтобы обрабатывать сообщения или предупреждения, предназначенные для процедуры диалогового окна. Чтобы разрешить работу фильтр - процедуры, используйте структуру PRINTDLG, которую вы передали в функцию создавшую диалог. Установите адрес фильтр - процедуры в элементе lpfnSetupHook, а в элементе Flags установите флажок PD_ENABLESETUPHOOK Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его в фильтр - процедуру. Хотя все другие сообщения сначала принимает фильтр - процедура. Затем, возвращаемое значение фильтр - процедуры определяет, обрабатывает ли заданная по умолчанию процедура диалогового окна сообщение или игнорирует его. Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG, она должна возвратить правильный дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если фильтр - процедура обрабатывает любое сообщение WM_CTLCOLOR*, она должна возвратить правильный дескриптор кисти для закрашивания фона определяемого элемента управления. Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого, она может вызывать функцию PostMessage, чтобы послать сообщение WM_COMMAND со значением IDABORT в процедуру диалогового окна. Отправка сообщения IDABORT закрывает диалоговое окно и вынуждает функцию блока диалога возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать, почему фильтр - процедура закрыла диалоговое окно, вы должны предоставить ваш собственный механизм связи между фильтр - процедурой и вашей прикладной программой. Вы можете поделить на подклассы стандартные элементы управления общего диалогового окна. Тем не менее, процедура стандартного диалогового окна может также делить на подклассы элементы управления. По этой причине, вы должны делить на подклассы элементы управления, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные элементом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна. SetupHookProc - метка - заместитель для определяемого программой или определенного библиотекой имени функции. Тип LPSETUPHOOKPROC - указатель на фильтр - процедуру SetupHookProc. Смотри также EndDialog, PrintDlg, PRINTDLG, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG Размещение и совместимость SetupHookProc Windows NTДа Win95Да Win32sДа Импортируемая библиотекаОпределяемая пользователем Заголовочный файлcommdlg.h УникодНет Замечания по платформеLPSETUPHOOKPROC
|