Поделиться через


Метод ITextStoreACP::SetText (texttor.h)

Метод ITextStoreACP::SetText задает для выделения текста указанные позиции символов.

Синтаксис

HRESULT SetText(
  [in]  DWORD         dwFlags,
  [in]  LONG          acpStart,
  [in]  LONG          acpEnd,
  [in]  const WCHAR   *pchText,
  [in]  ULONG         cch,
  [out] TS_TEXTCHANGE *pChange
);

Параметры

[in] dwFlags

Если задано значение TS_ST_CORRECTION, текст является преобразованием (исправлением) существующего содержимого, а также сохраняются все специальные сведения о разметке текста (метаданные), такие как .wav данные файла или идентификатор языка. Клиент определяет тип сохраняемой информации разметки.

[in] acpStart

Задает начальную позицию замещаемого текста.

[in] acpEnd

Указывает конечную позицию символа замещаемого текста. Этот параметр игнорируется, если значение равно 1.

[in] pchText

Указывает указатель на замещающий текст. Текстовая строка не обязательно должна заканчиваться значением NULL , так как число текстовых символов указано в параметре cch .

[in] cch

Указывает количество символов в замещающем тексте.

[out] pChange

Указатель на структуру TS_TEXTCHANGE со следующими данными.

Значение Значение
acpStart
Начальная позиция символа приложения перед вставленным текстом в документ.
acpOldEnd
Конечная позиция перед вставкой текста в документ. Это значение совпадает с значением acpStart для точки вставки. Если это значение отличается от acpStart, текст был выделен до вставки текста.
acpNewEnd
Конечная позиция после вставки текста.

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

Этот метод может возвращать одно из этих значений.

Значение Описание
S_OK
Метод выполнен успешно.
TS_E_INVALIDPOS
Параметр acpStart или acpEnd находится вне текста документа.
TS_E_NOLOCK
Вызывающий объект не имеет блокировки чтения и записи.
TS_E_READONLY
Документ доступен только для чтения. Невозможно изменить содержимое.
TS_E_REGION
Предпринята попытка изменить текст через границу области.

Комментарии

Приложения должны начать композицию с помощью ITextStoreACP::InsertTextAtSelection. ITextStoreACP::SetText следует использовать только в существующей композиции. Если во время вызова SetText нет активной композиции, диспетчер TSF создает композицию, которая длится достаточно долго, чтобы заключить вызов в SetText.

Позиции символов acpStart и acpEnd не могут находиться за пределами диапазона документа.

Приложения не должны вызывать метод ITextStoreACPSink::OnTextChange в ответ на этот метод.

Этот метод должен вызывать метод ITextStoreACP::SetSelection для выбора текста, который требуется изменить. После успешного выполнения метода ITextStoreACP::SetSelection этот метод вызывает метод ITextStoreACP::InsertTextAtSelection для выполнения фактического изменения текста.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header textstor.h
DLL Msctf.dll
Распространяемые компоненты TSF 1.0 в Windows 2000 Professional

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

Композиции

ITextStoreACP

ITextStoreACPSink::OnTextChange

Прочие константы хранилища текста

TS_TEXTCHANGE