Share via


ITextRange::SetChar 메서드(tom.h)

범위의 시작 위치에 있는 문자를 설정합니다.

구문

HRESULT SetChar(
  long Char
);

매개 변수

Char

형식: long

시작 위치에 있는 문자의 새 값입니다.

반환 값

형식: HRESULT

메서드는 HRESULT 값을 반환합니다. 메서드가 성공하면 S_OK 반환합니다. 메서드가 실패하면 다음 오류 코드 중 하나를 반환합니다. COM 오류 코드에 대한 자세한 내용은 COM에서 오류 처리를 참조하세요.

반환 코드 Description
E_ACCESSDENIED
텍스트는 쓰기로 보호됩니다.
E_OUTOFMEMORY
메모리가 부족합니다.

설명

ITextRange::SetChar 를 사용하면 사용할 정확한 문자 코드를 지정할 수 있습니다. 그러나 비슷한 모양의 문자 모양을 가진 문자열 리터럴은 오해의 소지가 있을 수 있습니다.

이 메서드에서 설정한 문자는 BSTR 대신 LONG입니다. 이렇게 하면 백업 저장소에 저장되는 방식(바이트, 단어, 가변 길이 등)이 숨겨집니다.

자동 단어 줄 바꿈이 없는 시스템에서는 종종 문서에 줄 바꿈을 위해 하드 캐리지 리턴이 삽입됩니다. 다음 코드에서는 이러한 하드 캐리지 리턴을 r 범위와 연결된 스토리의 공백으로 되돌리는 단순하지만 완벽하지는 않은 방법을 보여 줍니다.

    Sub EnableWrap(r As ITextRange)   // Convert false hard CRs to soft
        r.SetRange 0, 0               // r is set at start of story
        While r.Move(tomParagraph)    // Go to start of next paragraph
            If r.MoveWhile(C1_WHITE, 1) = 0 Then    // Next char isn't white space
                r.Move tomCharacter, -1
                r.SetChar = Asc(" ")    // Replace CR by blank
            End If
        Wend        // Loop till no more CRs in story
    End Sub

또는 IF 루프 내에서 다음을 사용할 수 있습니다.

r.MoveStart tomCharacter, -1        // Select previous char (the CR)
r = " "        // Replace it with a blank

이 방법을 사용하면 텍스트를 다른 너비로 래핑할 수 있습니다. 그러나 알고리즘은 완벽하지 않습니다. 공백(공백, 탭, 줄 바꿈, 캐리지 리턴 등)이 뒤에 오는 하드 캐리지 리턴을 공백으로 바꿔야 한다고 가정합니다. 또한 이 알고리즘은 캐리지 리턴 문자가 캐리지 리턴 또는 EOP(유니코드 단락 끝) 0x2029 문자와 같은 단일 문자라고 가정합니다. 또한 조합 캐리지 리턴과 줄 바꿈이 일치하지 않으므로 더 많은 코드를 작성하고 실행해야 합니다(또는 사용 FindText(^p)). 또 다른 주의 사항은 알고리즘이 제대로 작동하지 않는 혼합 코드 및 설명서와 같은 다른 경우가 있다는 것입니다.

그러나 ITextRange::SetChar 는 삭제 후 삽입으로 수행되는 바꾸기 작업보다 더 효율적입니다. 따라서 ITextRange::SetChar 를 사용하지 않고 코드를 다시 작성하면 훨씬 느려질 수 있습니다.

문자 컬렉션이 할 수 있는 대부분의 작업을 수행할 수 있는 Char 속성은 부모 범위로 제한되는 대신 부모 스토리의 모든 문자를 참조할 수 있으며 범위 개체가 아닌 LONG이 관련되어 있기 때문에 훨씬 더 빠릅니다. 이러한 장점 때문에 TOM(텍스트 개체 모델)은 문자 컬렉션을 지원하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 tom.h
DLL Msftedit.dll

추가 정보

개념

ITextRange

참조

텍스트 개체 모델