Фильтр - процедура SetupHookProc - это определяемая программой или библиотекой функция обратного вызова, которая используется функцией PrintDlg. Фильтр - процедура принимает сообщения или уведомления, предназначенные для процедуры по умолчанию диалогового окна Параметры печати (Print Setup).
Тип LPSETUPHOOKPROC определяет указатель на эту функцию обратного вызова. SetupHookProc - имя - заместитель для определяемого программой или библиотекой имени функции.
Синтаксис
UINT_PTR CALLBACK SetupHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam ); |
Параметры
hdlg
[in] Дескриптор блока диалога Параметры печати (Print Setup), для которого предназначено сообщение.uiMsg
[in] Идентифицирует принимаемое сообщение.wParam
[in] Определяет дополнительную информацию о сообщении. Точное значение зависит значения параметра uiMsg.lParam
[in] Определяет дополнительную информацию о сообщении. Точное значение зависит значения параметра uiMsg.Возвращаемое значение
Если фильтр (hook) - процедура возвращает нуль, заданная по умолчанию процедура диалогового окна обрабатывает сообщение.
Если фильтр (hook) - процедура возвращает ненулевое значение, заданная по умолчанию процедура диалогового окна игнорирует это сообщение.
Замечания
Диалоговое окно Параметры печати (Print Setup) было заменено диалоговым окном Параметры страницы (Page Setup), которое должно использоваться новыми прикладными программами. Однако, для совместимости, функция PrintDlg продолжает поддерживать вывод на экран диалогового окна Параметры печати (Print Setup). Вы можете предусмотреть фильтр (hook) - процедуру SetupHookProc для диалогового окна Параметры печати (Print Setup), чтобы обрабатывать сообщения или уведомления, предназначенные для процедуры диалогового окна.
Чтобы подключить фильтр (hook) - процедуру, используйте структуру PRINTDLG, которую Вы передали в функцию создания диалогового окна. В члене структуры lpfnSetupHook установите адрес фильтр (hook) - процедуры, а в члене структуры Flags установите флажок PD_ENABLESETUPHOOK
Заданная по умолчанию процедура диалогового окна обрабатывает сообщение WM_INITDIALOG перед передачей его фильтр - процедуре. Все другие сообщения фильтр - процедура принимает первая. Затем, возвращаемое значение фильтр - процедуры определяет, обрабатывать ли заданной по умолчанию процедуре диалогового окна сообщение или проигнорировать его.
Если фильтр - процедура обрабатывает сообщение WM_CTLCOLORDLG то, она должна возвратить допустимый дескриптор кисти для закрашивания фона диалогового окна. В большинстве случаев, если она обрабатывает какое-либо сообщение WM_CTLCOLOR*, то должна возвратить допустимый дескриптор кисти для закрашивания фона заданного органа управления.
Не вызывайте функцию EndDialog из фильтр - процедуры. Вместо этого она может вызвать функцию PostMessage, чтобы послать сообщение WM_COMMAND со значением IDABORT процедуре диалогового окна. Извещение IDABORT закрывает диалоговое окно и заставляет функцию диалогового окна возвратить значение ЛОЖЬ (FALSE). Если вам нужно узнать, почему фильтр - процедура закрыла блок диалога, вы должны предусмотреть свой собственный механизм связи между фильтр - процедурой и вашей прикладной программой.
Вы можете поделить на подклассы стандартные органы управления общего диалогового окна. Однако и процедура стандартного диалогового окна может также поделить на подклассы органы управления. По этой причине, вы должны делить на подклассы элементы управления тогда, когда ваша фильтр - процедура обрабатывает сообщение WM_INITDIALOG. Это гарантирует то, что ваша процедура подкласса принимает определенные органом управления сообщения перед процедурой подкласса, установленной процедурой диалогового окна.
Смотри также
Обзор Библиотека стандартных диалоговых окон, Функции, используемые библиотекой стандартных диалоговых окон, EndDialog, PrintDlg, PRINTDLG, PostMessage, WM_INITDIALOG, WM_CTLCOLORDLG
Размещение и совместимость SetupHookProc |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
- |
Заголовочный файл |
|
- объявлено в |
Commdlg.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |