Функция FindTextA (commdlg.h)

Создает системное диалоговое окно поиска без режима, которое позволяет пользователю указать строку для поиска и параметры, используемые при поиске текста в документе.

Синтаксис

HWND FindTextA(
  [in] LPFINDREPLACEA unnamedParam1
);

Параметры

[in] unnamedParam1

Тип: LPFINDREPLACE

Указатель на структуру FINDREPLACE , содержащую сведения, используемые для инициализации диалогового окна. Диалоговое окно использует эту структуру для отправки сведений о входных данных пользователя в приложение. Дополнительные сведения см. в разделе "Примечания".

Возвращаемое значение

Тип: HWND

Если функция выполнена успешно, возвращаемое значение будет дескриптором окна диалогового окна. Дескриптор окна можно использовать для взаимодействия с диалоговым окном или для закрытия диалогового окна.

Если функция завершается сбоем, возвращается значение NULL. Чтобы получить расширенные сведения об ошибке, вызовите функцию CommDlgExtendedError . CommDlgExtendedError может возвращать один из следующих кодов ошибок:

Комментарии

Функция FindText не выполняет операцию поиска. Вместо этого диалоговое окно отправляет зарегистрированные сообщения FINDMSGSTRING в процедуру окна владельца диалогового окна. При создании диалогового окна элемент hwndOwner структуры FINDREPLACE является дескриптором для окна владельца.

Перед вызовом FindText необходимо вызвать функцию RegisterWindowMessage , чтобы получить идентификатор сообщения FINDMSGSTRING . Процедура диалогового окна использует этот идентификатор для отправки сообщений, когда пользователь нажимает кнопку Найти далее или когда диалоговое окно закрывается. Параметр lParam сообщения FINDMSGSTRING содержит указатель на структуру FINDREPLACE . Элемент Flags этой структуры указывает на событие, вызвавшее сообщение. Другие элементы структуры указывают на входные данные пользователя.

При создании диалогового окна Найти необходимо также использовать функцию IsDialogMessage в цикле сообщений main приложения, чтобы убедиться, что диалоговое окно правильно обрабатывает ввод с помощью клавиатуры, например клавиши TAB и ESC. IsDialogMessage возвращает значение, указывающее, обработано ли сообщение в диалоговом окне Поиск .

Вы можете указать процедуру перехватчика FRHookProc для диалогового окна Поиск . Процедура перехватчика может обрабатывать сообщения, отправленные в диалоговое окно. Чтобы включить процедуру перехватчика, установите флаг FR_ENABLEHOOK в элементе Flags структуры FINDREPLACE и укажите адрес процедуры перехватчика в элементе lpfnHook .

Примеры

Пример см. в разделе Поиск текста.

Примечание

Заголовок commdlg.h определяет FindText как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header commdlg.h (включая Windows.h)
Библиотека Comdlg32.lib
DLL Comdlg32.dll
Набор API ext-ms-win-shell-comdlg32-l1-1-1 (появился в Windows 10 версии 10.0.14393)

См. также раздел

CommDlgExtendedError

Общая библиотека диалоговых окон

Основные понятия

FINDMSGSTRING

FINDREPLACE

FRHookProc

IsDialogMessage

Справочные материалы

RegisterWindowMessage

ReplaceText