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

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

Синтаксис

HWND ReplaceTextA(
  [in, out] LPFINDREPLACEA unnamedParam1
);

Параметры

[in, out] unnamedParam1

Тип: LPFINDREPLACE

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

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

Тип: HWND

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

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

Комментарии

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

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

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

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента 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

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

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

FINDREPLACE

FRHookProc

IsDialogMessage

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

RegisterWindowMessage

WM_CTLCOLORDLG