다음을 통해 공유


ITfRange::SetText 메서드(msctf.h)

ITfRange::SetText 메서드는 텍스트 범위에서 다루는 콘텐츠를 대체합니다. 빈 범위 개체의 경우 메서드는 범위의 위치에 삽입됩니다. 새 콘텐츠가 빈 문자열(cch = 0)인 경우 메서드는 범위 내의 기존 콘텐츠를 삭제합니다.

구문

HRESULT SetText(
  [in] TfEditCookie ec,
  [in] DWORD        dwFlags,
  [in] const WCHAR  *pchText,
  [in] LONG         cch
);

매개 변수

[in] ec

ITfDocumentMgr::CreateContext 또는 ITfEditSession::D oEditSession에서 가져온 편집 컨텍스트를 식별합니다.

[in] dwFlags

콘텐츠 수정에 대한 선택적 동작을 지정합니다. TF_ST_CORRECTION 값으로 설정된 경우 작업은 새 콘텐츠를 만드는 것이 아니라 기존 콘텐츠의 수정이며 원래 텍스트 속성은 유지됩니다.

[in] pchText

범위 내용을 바꿀 텍스트가 포함된 버퍼에 대한 포인터입니다.

[in] cch

pchText의 문자 수를 포함합니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

Description
S_OK
메서드를 성공적으로 수행했습니다.
E_FAIL
지정되지 않은 오류가 발생했습니다.
E_INVALIDARG
하나 이상의 매개 변수가 잘못되었습니다.
TF_E_COMPOSITION_REJECTED
컨텍스트 소유자가 기본 컴퍼지션을 거부했습니다.
TF_E_NOLOCK
ec 매개 변수의 값이 잘못된 쿠키이거나 호출자에게 읽기/쓰기 잠금이 없습니다.
TF_E_RANGE_NOT_COVERED
범위가 호출자의 활성 컴퍼지션 내에 있지 않습니다.

설명

범위가 여러 지역을 포함하는 경우 각 지역에서 ITfRange::SetText를 개별적으로 호출합니다. 그렇지 않으면 메서드가 실패할 수 있습니다.

기본적으로 텍스트 서비스는 범위를 포함하는 임시 컴퍼지션을 시작하고 종료하여 컨텍스트 소유자가 편집된 텍스트에 대한 컴퍼지션을 일관되게 인식하도록 합니다. 컴퍼지션 소유자가 기본 컴퍼지션을 거부하는 경우 메서드는 TF_E_COMPOSITION_REJECTED 반환합니다. 기본 컴퍼지션은 호출자가 아직 시작하지 않은 경우에만 만들어집니다. 호출자에게 활성 컴퍼지션이 있는 경우 호출이 실패합니다.

TF_CHAR_EMBEDDED 개체 자리 표시자 문자는 이 메서드에 전달되지 않을 수 있습니다. 대신 ITfRange::InsertEmbedded 를 사용해야 합니다.

텍스트를 삽입하기 위해 ITFInsertAtSelection:InsertTextAtSelection 메서드는 선택 범위를 할당할 필요가 없으며 범위가 선택 영역과 일치해야 하는 요구 사항을 방지합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 msctf.h
DLL Msctf.dll
재배포 가능 파일 Windows 2000 Professional의 TSF 1.0

참고 항목

ITFInsertAtSelection:InsertTextAtSelection

ITfDocumentMgr::CreateContext

ITfEditSession::D oEditSession

ITfRange

ITfRange::GetText

ITfRange::InsertEmbedded

기타 프레임워크 상수

텍스트 저장소