Win32 API. Справочник по стандартному диалоговому окну
Страница 24. Структура FINDREPLACE


Структура FINDREPLACE

Структура 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;

Элементы
lStructSize
Определяет длину структуры в байтах.
hwndOwner
Идентифицирует окно, которое владеет диалоговым окном. Оконная процедура определяемого окна принимает сообщения FINDMSGSTRING от блока диалога. Этот элемент может быть любым допустимым дескриптором окна, но он не должен быть со значением ПУСТО (NULL).
hInstance
Если в элементе Flags установлен флажок FR_ENABLETEMPLATEHANDLE, hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок FR_ENABLETEMPLATE, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, именованный элементом lpTemplateName. Если установленных флажков нет, этот элемент игнорируется.
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать диалоговое окно. Блок диалога устанавливает эти флажки, когда он передает зарегистрированное сообщение FINDMSGSTRING, чтобы обозначить ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

  • FR_DIALOGTERM - Если он установлен в сообщении FINDMSGSTRING, то указывает на то, что диалоговое окно закрывается. Когда вы получаете сообщение с этим установленным флажком, дескриптор окна блока диалога, возвращенный функцией FindText или ReplaceText больше не допустим.
  • FR_DOWN - Если он установлен, выбрана кнопка Вперед (Down) из радио-кнопок направления в диалоговом окне Найти (Find), обозначая тем самым, что вы должны осуществлять поиск от текущего местоположения до конца документа. Если он не установлен, выбрана кнопка Назад (Up), таким образом вы должны искать в направлении к началу документа. Вы можете устанавливать этот флажок, чтобы инициализировать диалоговое окно. Если он установлен в сообщении FINDMSGSTRING, то указывает на выбор пользователя.
  • FR_ENABLEHOOK - Разрешает работу фильтр - процедуры, которая определена в элементе 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, то обозначает выбор пользователя.
  • FR_NOMATCHCASE - Если он установлен при инициализации диалогового окна Найти (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 для передачи строки для поиска с нуль-терминатором в конце, которую пользователь набрал в редактируемом поле " То, что искать:". Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия до того, как диалоговое окно закроется. Буфер должен быть, по крайней, мере длиной 80 символов. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле " То, что искать:".
Если сообщение FINDMSGSTRING определяет, флажок FR_FINDNEXT, элемент lpstrFindWhat содержит строку, которую надо искать. Флажки FR_DOWN, FR_WHOLEWORD и FR_MATCHCASE указывают направление и тип поиска. Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACE, элемент lpstrFindWhat содержит строку, которая будет заменена.
lpstrReplaceWith
Указатель на буфер, который использует сообщение FINDMSGSTRING, чтобы передать строку замены с нуль-терминатором в конце, которую пользователь ввел с клавиатуры в редактируемое поле "Заменить на: (Replace With)". Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия прежде, чем диалоговое окно закроется. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле "Заменить на: (Replace With)".
Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACEALL, lpstrReplaceWith содержит строку замены.
Функция FindText игнорирует этот элемент.
wFindWhatLen
Устанавливает длину, в байтах, буфера, указанного элементом lpstrFindWhat.
wReplaceWithLen
Устанавливает длину, в байтах, буфера, указанного элементом lpstrReplaceWith
lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр - процедуру, идентифицированную при помощи элемента lpfnHook. Когда система посылает сообщение WM_INITDIALOG фильтр - процедуре, параметр сообщения lParam - указатель на структуру FINDREPLACE, определенную, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр - процедуру FRHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флажок FR_ENABLEHOOK.
Если фильтр - процедура в ответ на сообщение WM_INITDIALOG возвращает значение ЛОЖЬ (FALSE), она должна показать на экране диалоговое окно, а не то диалоговое окно не будет показано на экране. Чтобы сделать это, сначала выполняют любые другие действия рисования, а затем вызывают функции ShowWindow и UpdateWindow.
lpTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для пронумерованных ресурсов диалогового окна, это может быть значение, возвращенное макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags не установлен флажок FR_ENABLETEMPLATE.

Смотри также
FindText, FRHookProc, MAKEINTRESOURCE, ReplaceText, ShowWindow, UpdateWindow, WM_INITDIALOG

Размещение и совместимость DEVNAMES

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотека -
Заголовочный файлcommdlg.h
УникодНет
Замечания по платформеНе имеется

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