Функция обратного вызова LPSETUPHOOKPROC (commdlg.h)

Функция обратного вызова, определяемая приложением или библиотекой, используемая с функцией PrintDlg . Процедура перехватчика получает сообщения или уведомления, предназначенные для диалогового окна по умолчанию диалогового окна Настройка печати .

Тип LPSETUPHOOKPROC определяет указатель на эту функцию обратного вызова. SetupHookProc — это заполнитель для имени функции, определяемой приложением или библиотекой.

Синтаксис

LPSETUPHOOKPROC Lpsetuphookproc;

UINT_PTR Lpsetuphookproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

Параметры

unnamedParam1

Дескриптор диалогового окна Настройка печати , для которого предназначено сообщение.

unnamedParam2

Идентификатор получаемого сообщения.

unnamedParam3

Дополнительные сведения о сообщении. Точное значение зависит от значения параметра unnamedParam2 .

unnamedParam4

Дополнительные сведения о сообщении. Точное значение зависит от значения параметра unnamedParam2 .

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

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

Если процедура перехватчика возвращает ненулевое значение, то диалоговое окно по умолчанию игнорирует сообщение.

Комментарии

Диалоговое окно Параметры печати заменено диалоговым окном Параметры страницы , которое должно использоваться новыми приложениями. Однако для обеспечения совместимости функция PrintDlg по-прежнему поддерживает отображение диалогового окна Настройка печати . Вы можете указать процедуру перехватчика SetupHookProc для диалогового окна Настройка печати для обработки сообщений или уведомлений, предназначенных для этой процедуры.

Чтобы включить процедуру перехватчика, используйте структуру PRINTDLG , переданную в функцию создания диалога. Укажите адрес процедуры перехватчика в члене lpfnSetupHook и флаг PD_ENABLESETUPHOOK в элементе Flags .

Процедура диалогового окна по умолчанию обрабатывает сообщение WM_INITDIALOG перед его передачей в процедуру перехватчика. Для всех остальных сообщений процедура перехватчика сначала получает сообщение. Затем возвращаемое значение процедуры перехватчика определяет, обрабатывает ли диалоговая процедура по умолчанию сообщение или игнорирует его.

Если процедура перехватчика обрабатывает сообщение WM_CTLCOLORDLG , она должна вернуть допустимый маркер кисти для рисования фона диалогового окна. Как правило, если процедура перехватчика обрабатывает любое сообщение WM_CTLCOLOR* , она должна возвращать допустимый дескриптор кисти для рисования фона указанного элемента управления.

Не вызывайте функцию EndDialog из процедуры перехватчика. Вместо этого процедура перехватчика может вызвать функцию PostMessage для публикации сообщения WM_COMMAND со значением IDABORT в процедуре диалогового окна. При публикации IDABORT диалоговое окно закрывается и функция диалогового окна возвращает значение FALSE. Если необходимо знать, почему процедура перехватчика закрыла диалоговое окно, необходимо предоставить собственный механизм взаимодействия между процедурой перехватчика и приложением.

Можно подклассы стандартных элементов управления общего диалогового окна. Однако процедура диалогового окна также может быть подклассом элементов управления. По этой причине элементы управления должны быть подклассами, когда процедура перехватчика обрабатывает сообщение WM_INITDIALOG . Это гарантирует, что процедура подкласса получает сообщения, относящиеся к элементу управления, до процедуры подкласса, заданной процедурой диалогового окна.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header commdlg.h (включая Windows.h)

См. также раздел

Общая библиотека диалоговых окон

Основные понятия

EndDialog

PRINTDLG

PostMessage

PrintDlg

Справочные материалы

WM_CTLCOLORDLG

WM_INITDIALOG