Структура FINDREPLACE содержит информацию, которую используют функции FindText и ReplaceText, чтобы инициализировать диалоговые окна Найти (Find) и Заменить (Replace). Зарегистрированное сообщение FINDMSGSTRING использует эту структуру, чтобы передать введенные данные пользовательского поиска или замены в окно владельца блока диалога Найти (Find) или Заменить (Replace).
Синтаксис
typedef struct { DWORD lStructSize; HWND hwndOwner; HINSTANCE hInstance; DWORD Flags; LPTSTR lpstrFindWhat; LPTSTR lpstrReplaceWith; WORD wFindWhatLen; WORD wReplaceWithLen; LPARAM lCustData; LPFRHOOKPROC lpfnHook; LPCTSTR lpTemplateName; } FINDREPLACE, *LPFINDREPLACE; |
Члены структуры
lStructSize
Определяет длину структуры в байтах.hwndOwner
Дескриптор окна, которое владеет диалоговым окном. Оконная процедура заданного окна принимает сообщения FINDMSGSTRING от блока диалога. Этот член может быть любым допустимым дескриптором окна, но он не должен быть со значением ПУСТО (NULL).hInstance
Если в члене Flags установлен флажок FR_ENABLETEMPLATEHANDLE, hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок FR_ENABLETEMPLATE, hInstance дескриптор модуля, который содержит шаблон диалогового окна, именованный членом lpTemplateName. Если установленных флажков нет, этот член игнорируется.Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать диалоговое окно. Блок диалога устанавливает эти флажки, когда отправляет зарегистрированное сообщение FINDMSGSTRING, чтобы обозначить ввод данных пользователем. Этот член может быть комбинацией следующих значений.Значение | Предназначение |
FR_DIALOGTERM | Если он установлен в сообщении FINDMSGSTRING, то указывает на то, что диалоговое окно закрывается. Когда вы получаете сообщение с этим установленным флажком, дескриптор окна блока диалога, возвращенный функцией FindText или ReplaceText больше не допустим |
FR_DOWN | Если он установлен, среди радио-кнопок направления в диалоговом окне Найти (Find) выбрана кнопка В конец документа (Down), обозначая тем самым, что вы должны осуществлять поиск от текущего места до конца документа. Если он не установлен, выбрана кнопка В начало документа (Up), таким образом вы должны искать в направлении к началу документа. Вы можете устанавливать этот флажок, чтобы инициализировать диалоговое окно. Если он установлен в сообщении FINDMSGSTRING, то указывает на выбор пользователя. |
FR_ENABLEHOOK | Подключает фильтр (hook) - процедуры, которая определена в члене lpfnHook. Этот флажок используется только для инициализации диалогового окна. |
FR_ENABLETEMPLATE | Указывает, что члены hInstance и lpTemplateName определяют шаблон диалогового окна, который используется вместо заданного по умолчанию шаблона. Этот флажок используется только для инициализации диалогового окна. |
FR_ENABLETEMPLATEHANDLE | Указывает, что член hInstance идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует член lpTemplateName, если установлен этот флажок. |
FR_FINDNEXT | Если он установлен в сообщении FINDMSGSTRING, то указывает, что пользователь щелкнул по кнопке Искать дальше (Find Next) в диалоговом окне Найти(Find) или Заменить (Replace). Член lpstrFindWhat определяет строку для поиска. |
FR_HIDEUPDOWN | Если он установлен при инициализации диалогового окна Найти (Find), то скрывает радио-кнопки направления поиска. |
FR_HIDEMATCHCASE | Если он установлен при инициализации диалогового окна Найти (Find) или Заменить (Replace), то скрывает окошко флажка Учитывать регистр (Match Case). |
FR_HIDEWHOLEWORD | Если он установлен при инициализации диалогового окна или Найти (Find) или Заменить (Replace), то скрывает окошко флажка Учитывать только слово целиком (Match Whole Word Only). |
FR_MATCHCASE | Если он установлен, то окошко флажка Учитывать регистр (Match Case) установлен флажок, указывая, что поиск должен быть чувствителен к регистру. Если он не установлен, в окошке нет флажка, так что поиск должен осуществляться без учета регистра. Вы можете устанавливать этот флажок, чтобы инициализировать диалоговое окно. Если он установлен в сообщении FINDMSGSTRING, то обозначает выбор пользователя. |
|
Если он установлен при инициализации диалогового окна Найти (Find) или Заменить (Replace), то отключается окошко флажка Учитывать регистр (Match Case). |
FR_NOUPDOWN | Если он установлен при инициализации диалогового окна Найти (Find), то отключаются радио-кнопки направления поиска. |
FR_NOWHOLEWORD | Если он установлен при инициализации диалогового окна Найти (Find ) или Заменить (Replace), то отключается окошко флажка Слово целиком (Whole Word). |
FR_REPLACE | Если он установлен в сообщении FINDMSGSTRING, то указывает, что пользователь щелкнул по кнопке Заменить (Replace) в диалоговом окне Заменить (Replace). Член lpstrFindWhat определяет строку, которая заменяется, а член lpstrReplaceWith определяет строку замены. |
FR_REPLACEALL | Если он установлен в сообщении FINDMSGSTRING, то указывает, что пользователь щелкнул по кнопке Заменить все (Replace All) в диалоговом окне Заменить (Replace). Член lpstrFindWhat определяет строку, которая будет заменена, а член lpstrReplaceWith определяет строку замены. |
FR_SHOWHELP | Заставляет диалоговое окно показать кнопку Справка (Help). Член структуры hwndOwner должен определить окно, которое примет зарегистрированные сообщения HELPMSGSTRING, отправляемые диалоговым окном, когда пользователь щелкает по кнопке Справка (Help). |
FR_WHOLEWORD | Если он установлен, в окошке флажка Только слово целиком (Match Whole Word Only) появляется флажок, указывая, что вы должны искать только целые слова, которые соответствуют строке поиска. Если он не установлен, в окошке нет флажка, таким образом, вы должны искать такие же фрагменты слов, которые соответствуют строке поиска. Вы можете установить этот флажок, чтобы инициализировать диалоговое окно. Если он установлен в сообщении FINDMSGSTRING, то это обозначает выбор пользователя. |
lpstrFindWhat
Указатель на буфер, который использует сообщение FINDMSGSTRING для передачи строки поиска с нуль-терминатором в конце, которую пользователь набрал в редактируемом поле Что искать: (Find What). Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия до закрытия диалогового окна. Буфер должен быть, по крайней, мере длиной 80 символов. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле Что искать (Find What). Если сообщение FINDMSGSTRING определяет, флажок FR_FINDNEXT, член lpstrFindWhat содержит строку, которую надо искать. Флажки FR_DOWN, FR_WHOLEWORD и FR_MATCHCASE указывают направление и тип поиска. Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACEALL, член lpstrFindWhat содержит строку, которая будет заменена.lpstrReplaceWith
Указатель на буфер, который использует сообщение FINDMSGSTRING для передачи строки поиска с нуль-терминатором в конце, которую пользователь набрал в редактируемом поле Заменить на: (Replace With). Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия до закрытия диалогового окна. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле Заменить на: (Replace With).Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACEALL, lpstrReplaceWith содержит строку замены.
Функция FindText игнорирует этот элемент.
wFindWhatLen
Устанавливает длину, в байтах, буфера, указанного членом lpstrFindWhat.wReplaceWithLen
Устанавливает длину, в байтах, буфера, указанного элементом lpstrReplaceWith.lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр (hook) - процедуру, идентифицированную при помощи члена lpfnHook. Когда система отправляет сообщение WM_INITDIALOG фильтр (hook) - процедуре, параметр сообщения lParam - указатель на структуру FINDREPLACE, определенную, когда диалоговое окно было создано. Фильтр-процедура (hook) может использовать этот указатель, чтобы получить значение lCustData.lpfnHook
Указатель на фильтр (hook) - процедуру FRHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот член игнорируется, если в члене Flags не установлен флажок FR_ENABLEHOOK.
Если фильтр (hook) - процедура в ответ на сообщение WM_INITDIALOG возвращает значение ЛОЖЬ (FALSE), она должна показать на экране диалоговое окно, или, иначе, диалоговое окно не будет показано на экране. Чтобы сделать это, сначала выполняют любые другие операции рисования, а затем вызывают функции ShowWindow и UpdateWindow.
lpTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном членом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для пронумерованных ресурсов диалогового окна, это может быть значение, возвращенное макрокомандой MAKEINTRESOURCE. Этот член игнорируется, если в члене Flags не установлен флажок FR_ENABLETEMPLATE.Смотри также
Обзор Библиотека стандартных диалоговых окон, Структуры, используемые библиотекой стандартных диалоговых окон, FindText, FRHookProc, MAKEINTRESOURCE, ReplaceText, ShowWindow, UpdateWindow, WM_INITDIALOG
Размещение и совместимость FINDREPLACE |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Заголовочный файл |
|
- объявлено в |
Commdlg.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |