Настройка диалогового окна Найти (Find) или Заменить (Replace)

Чтобы настроить диалоговое окно Найти (Find) или Заменить (Replace), вы можете использовать любой из ниже перечисленных методов:

Когда вы создаете диалоговое окно Найти (Find) или Заменить (Replace), вы можете установить флажки в члене Flags структуры FINDREPLACE, чтобы скрыть или запретить работу любого органа управления параметрами поиска. Например, вы можете установить флажок FR_NOMATCHCASE, чтобы запретить работу отмечаемого блока С учетом регистра (Match Case) или установить флажок FR_HIDEMATCHCASE, чтобы скрыть его.

Вы можете снабдить диалоговое окно Найти (Find) или Заменить (Replace) пользовательским шаблоном, к примеру, если вы захотите включить дополнительные элементы управления, которые присущи только вашей прикладной программе. Функции FindText и ReplaceText используют ваш пользовательский шаблон вместо шаблона по умолчанию.

Чтобы снабдить пользовательским шаблоном диалоговое окно Найти (Find) или Заменить (Replace)

  1. Создайте индивидуальный шаблон, модифицируя шаблон по умолчанию, определенный в файле Findtext.dlg. Идентификаторы органов управления, используемые по умолчанию в шаблоне диалога Найти (Find) или Заменить (Replace), определены в файле Dlgs.h
  2. Чтобы разрешить работу шаблона, используйте структуру FINDREPLACE, как указано ниже:

или

Вы можете предоставить диалоговому окну Найти (Find) или Заменить (Replace) фильтр - процедуру FRHookProc. Фильтр-процедура (hook) может обрабатывать сообщения, отправляемые в диалоговое окно. Если вы используете пользовательский шаблон, чтобы определить дополнительные органы управления, вы должны предусмотреть фильтр (hook) - процедуру для обработки вводимых данных в ваши элементы управления

Чтобы включить в работу фильтр (hook) - процедуру для диалогового окна Найти (Find) или Заменить (Replace)

1. Установите флажок FR_ENABLEHOOK в члене Flags структуры FINDREPLACE.

2. Определите адрес фильтр - процедуры в элементе lpfnHook.

После обработки своего сообщения WM_INITDIALOG, процедура диалогового окна отправляет сообщение WM_INITDIALOG в фильтр - процедуру. Параметр lParam этого сообщения - указатель на структуру FINDREPLACE, которая используется для инициализации диалогового окна.

Если фильтр (hook) - процедура в ответ на сообщение WM_INITDIALOG возвращает значение ЛОЖЬ (FALSE), диалоговое окно не будет показано до тех пор, пока его не покажет фильтр - процедура. Чтобы сделать это, сначала выполняют любые другие операции рисования, а затем вызывают функции ShowWindow и UpdateWindow. Код ниже дает пример:

// Мы возвратили ЛОЖЬ (FALSE) в ответ на WM_INITDIALOG.
// Мы выполнили любые другие операции рисования.
// Теперь мы показываем на экране диалоговое окно.
ShowWindow(hDlg, SW_SHOWNORMAL);
UpdateWindow(hDlg);

 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz