Win32 API. Библиотека стандартных диалоговых окон
Страница 5. Фильтр (hook) - процедуры для общих диалоговых окон


Фильтр (hook) - процедуры для общих диалоговых окон

Для каждого из стандартных диалоговых окон, вы можете разрешить работу фильтра (hook), чтобы обрабатывать сообщения из заданной по умолчанию процедуры диалогового окна. Имеются два общих типа фильтр (hook) - процедур стандартного диалогового окна:

1. Стандартный фильтр (hook) - процедура, используется с наиболее общими диалоговыми окнами

2. Фильтр (hook) - процедура, поддерживающая диалоговые окна Открыть (Open) и Сохранить как (Save As) в стиле Проводника

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

  • WM_INITDIALOG - Заданная по умолчанию процедура диалогового окна обрабатывает сообщение перед передачей его в фильтр - процедуру. Параметр сообщения lParam является указателем на структуру инициализации, определяя, когда диалоговое окно было создано.
  • Все другие сообщения - Фильтр - процедура сначала принимает сообщение. Затем, возвращаемое значение фильтр(hook) - процедуры определяет, обрабатывает ли заданная по умолчанию процедура сообщение диалогового окна или она игнорирует его.

Для диалоговых окон Открыть (Open) и Сохранить как (Save As) в стиле Проводника, фильтр - процедура не принимает сообщения, предназначенные для стандартных элементов управления в общем диалоговом окне. Вместо этого, она принимает уведомительные сообщения от диалогового окна и сообщения для любых дополнительных элементов управления, которые вы определили в пользовательском шаблоне. Для получения дополнительной информации, см. Фильтр (hook) - процедуры стиля Проводника.

Чтобы включить фильтр - процедуру, установите значение ENABLEHOOK в элементе Flags соответствующей структуры для диалогового окна. Если флажок ENABLEHOOK установлен, элемент lpfnHook структуры должен определить адрес фильтр - процедуры.

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

Тип общего диалогового окнаФильтр - процедура
Цвет (Color)CCHookProc
Найти или Заменить (Find or Replace)FRHookProc
Шрифт (Font)CFHookProc
Открыть или Сохранить как (Open or Save As) (стиль Проводника)OFNHookProc
Открыть или Сохранить как (Open or Save As) (Старый стиль)OFNHookProcOldStyle
Печатать (Print)PrintHookProc
Параметры Страницы (Page Setup)PageSetupHook

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

Обратите внимание, что диалоговое окно Print Setup было заменено диалоговым окном Page Setup, которое должно использоваться новыми прикладными программами, написанными для Windows 95 или для Windows NT версии 3.51 или позже. Однако для совместимости с более ранними версиями Windows, функция PrintDlg продолжает поддерживать показ диалогового окна Print Setup. Вы можете дать фильтр - процедуру SetupHookProc для диалогового окна Параметры страницы (Page Setup).

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