Страница 24 из 30
Настройка диалогового окна Найти (Find) или Заменить (Replace) Чтобы настроить диалоговое окно Найти (Find) или Заменить (Replace), вы можете использовать любой из ниже перечисленных методов: - Определить значения в структуре FINDREPLACE, когда создается диалоговое окно
- Снабдить индивидуальным шаблоном
- Предоставить фильтр - процедуру (ловушку)
Когда вы создаете диалоговое окно Найти (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, как указано ниже: Если ваш пользовательский шаблон - ресурс в прикладной программе или динамически компонуемой библиотеки, установите флажок FR_ENABLETEMPLATE в элементе Flags. Используйте элементы hInstance и lpTemplateName структуры, чтобы идентифицировать модуль и название ресурса. ИЛИ Если ваш пользовательский шаблон уже в памяти, установите флажок FR_ENABLETEMPLATEHANDLE. Используйте элемент hInstance, чтобы идентифицировать объект памяти, который хранит в себе шаблон. Вы можете предоставить диалоговому окну Найти (Find) или Заменить (Replace) фильтр - процедуру FRHookProc. Фильтр -процедура может обрабатывать сообщения, посылаемые в диалоговое окно. Если вы используете пользовательский шаблон, чтобы определить дополнительные элементы управления, вы должны предоставить фильтр - процедуру для обработки в водимых данных для ваших элементов управления. Чтобы включить в работу фильтр - процедуру для диалогового окна Найти (Find) или Заменить (Replace) 1. Установите флажок FR_ENABLEHOOK в элементе Flags структуры FINDREPLACE. 2. Определите адрес фильтр - процедуры в элементе lpfnHook. После обработки своего сообщения WM_INITDIALOG, процедура диалогового окна передаёт сообщение WM_INITDIALOG в фильтр - процедуру. Параметр lParam этого сообщения указывает на структуру FINDREPLACE, которая используется для инициализации диалогового окна. Если фильтр - процедура в ответ на сообщение WM_INITDIALOG возвращает значение ЛОЖЬ (FALSE), диалоговое окно не будет показано до тех пор, пока его не покажет фильтр - процедура. Чтобы сделать это, сначала выполняют любые другие операции прорисовки, а затем вызывают функции ShowWindow и UpdateWindow. Код ниже дает пример: // Мы возвратили ЛОЖЬ (FALSE) в ответ на WM_INITDIALOG. // Мы выполнили любые другие операции прорисовки. // Теперь мы показываем диалоговое окно.
ShowWindow(hDlg, SW_SHOWNORMAL); UpdateWindow(hDlg); |