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