Share via


ITextRange 인터페이스(tom.h)

ITextRange 개체는 프로그램에서 스토리에서 텍스트를 선택한 다음 해당 텍스트를 검사하거나 변경할 수 있는 강력한 편집 및 데이터 바인딩 도구입니다.

상속

ITextRange 인터페이스는 IDispatch 인터페이스에서 상속됩니다. ITextRange 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

ITextRange 인터페이스에는 이러한 메서드가 있습니다.

 
ITextRange::CanEdit

지정된 범위를 편집할 수 있는지 여부를 결정합니다.
ITextRange::CanPaste

지정된 형식을 사용하여 데이터 개체를 현재 범위에 붙여넣을 수 있는지 여부를 결정합니다.
ITextRange::ChangeCase

Type 매개 변수에 따라 이 범위의 문자 대/소문자를 변경합니다.
ITextRange::Collapse

지정된 텍스트 범위를 범위의 시작 또는 끝에 있는 퇴화 지점으로 축소합니다.
ITextRange::Copy

텍스트를 데이터 개체에 복사합니다.
ITextRange::Cut

pVar 매개 변수에 따라 일반 텍스트나 서식 있는 텍스트를 데이터 개체 또는 클립보드로 잘라냅니다.
ITextRange::D 삭제

CTRL 키를 누른 상태로 또는 사용하지 않고 DELETE 및 BACKSPACE 키를 모방합니다.
ITextRange::EndOf

이 범위의 끝을 범위의 마지막 겹치는 단위 끝으로 이동합니다.
ITextRange::Expand

포함된 부분 단위가 완전히 포함되도록 이 범위를 확장합니다.
ITextRange::FindText

bstr에서 지정한 텍스트의 최대 개수 문자를 검색합니다. 시작 위치와 방향도 Count로 지정되며 일치 조건은 Flags에 의해 지정됩니다.
ITextRange::FindTextEnd

범위의 End cp부터 시작하여 최대 개수 문자로 문자열 bstr을 검색합니다.
ITextRange::FindTextStart

범위의 시작 cp(cpFirst)에서 시작하여 최대 개수 문자의 문자열인 bstr을 검색합니다.
ITextRange::GetChar

범위의 시작 위치에 있는 문자를 가져옵니다.
ITextRange::GetDuplicate

이 범위 개체의 중복을 가져옵니다.
ITextRange::GetEmbeddedObject

지정된 범위의 시작 부분, 즉 cpFirst에서 포함된 개체에 대한 포인터를 검색합니다. 범위는 삽입 지점이거나 포함된 개체만 선택해야 합니다.
ITextRange::GetEnd

범위의 끝 문자 위치를 가져옵니다.
ITextRange::GetFont

지정된 범위의 문자 특성이 있는 ITextFont 개체를 가져옵니다.
ITextRange::GetFormattedText

지정된 범위의 서식이 지정된 텍스트가 있는 ITextRange 개체를 가져옵니다.
ITextRange::GetIndex

지정된 범위 시작 문자 위치에서 Unit 매개 변수의 스토리 인덱스를 검색합니다.
ITextRange::GetPara

지정된 범위의 단락 특성이 있는 ITextPara 개체를 가져옵니다.
ITextRange::GetPoint

텍스트 범위의 시작 또는 끝 문자 위치와 줄 내 위치의 화면 좌표를 검색합니다.
ITextRange::GetStart

범위의 시작 문자 위치를 가져옵니다.
ITextRange::GetStoryLength

범위의 스토리에 있는 문자 수를 가져옵니다.
ITextRange::GetStoryType

범위의 스토리 유형을 가져옵니다.
ITextRange::GetText

이 범위의 일반 텍스트를 가져옵니다. Text 속성은 ITextRange 인터페이스의 기본 속성입니다.
ITextRange::InRange

이 범위가 지정된 범위와 동일한 텍스트 내에 있는지 여부를 확인합니다.
ITextRange::InStory

이 범위의 스토리가 지정된 범위의 스토리와 같은지 여부를 결정합니다.
ITextRange::IsEqual

이 범위의 문자 위치와 스토리가 지정된 범위와 같은지 여부를 결정합니다.
ITextRange::Move

삽입 지점을 지정된 단위 수만큼 앞으로 또는 뒤로 이동합니다. 범위가 비일반적인 경우 범위는 Count에 따라 양쪽 끝의 삽입 지점으로 축소된 다음 이동됩니다.
ITextRange::MoveEnd

범위의 끝 위치를 이동합니다.
ITextRange::MoveEndUntil

범위 끝의 Count 문자 내에 있는 경우 Cset에서 지정한 문자 집합에 있는 첫 번째 문자의 문자 위치로 범위의 끝을 이동합니다.
ITextRange::MoveEndWhile

범위의 끝을 문자 개수로 이동하거나 Cset에서 지정한 문자 집합에 있는 모든 연속 문자를 지나갑니다.
ITextRange::MoveStart

범위의 시작 위치를 지정된 방향으로 지정된 단위 수로 이동합니다.
ITextRange::MoveStartUntil

문자가 시작 위치의 Count 문자 내에 있는 경우 Cset에서 지정한 문자 집합에 있는 첫 번째 문자의 위치 범위의 시작 위치를 이동합니다.
ITextRange::MoveStartWhile

범위의 시작 위치를 Count 문자로 이동하거나 Cset에서 지정한 문자 집합에 있는 모든 연속 문자를 지나갑니다.
ITextRange::MoveUntil

Cset에서 지정한 문자 집합의 첫 번째 문자에 대해 최대 개수 문자 수를 검색합니다. 문자가 발견되면 범위가 해당 지점으로 축소됩니다. 검색 시작과 방향도 Count로 지정됩니다.
ITextRange::MoveWhile

범위의 지정된 끝에서 시작하고 문자가 Cset에 지정된 집합에 속하는 동안 및 문자 수가 Count보다 작거나 같은 경우를 검색합니다.
ITextRange::P aste

지정된 데이터 개체의 텍스트를 붙여넣습니다.
ITextRange::ScrollIntoView

지정된 범위를 보기로 스크롤합니다.
ITextRange::Select

현재 선택 영역의 시작 및 끝 위치와 스토리 값을 이 범위의 위치로 설정합니다.
ITextRange::SetChar

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

범위의 끝 위치를 설정합니다.
ITextRange::SetFont

이 범위의 문자 특성을 지정된 ITextFont 개체의 특성으로 설정합니다.
ITextRange::SetFormattedText

이 범위 텍스트의 서식이 지정된 텍스트를 지정된 범위의 서식이 지정된 텍스트로 설정합니다.
ITextRange::SetIndex

이 범위를 스토리의 지정된 단위로 변경합니다.
ITextRange::SetPara

이 범위의 단락 특성을 지정된 ITextPara 개체의 단락 특성으로 설정합니다.
ITextRange::SetPoint

형식에 따라 정렬된 점(x, y)을 확장에 따라 또는 위쪽에서 지정된 지점에 따라 범위를 변경합니다.
ITextRange::SetRange

범위 엔드포인트를 지정된 값으로 조정합니다.
ITextRange::SetStart

이 범위의 시작 부분에 대한 문자 위치를 설정합니다.
ITextRange::SetText

이 범위의 텍스트를 설정합니다.
ITextRange::StartOf

범위 끝을 범위의 첫 번째 겹치는 단위의 시작으로 이동합니다.

설명

여러 텍스트 범위가 활성화되고 동일한 스토리에 협조적으로 작업하고 스토리와 함께 발전할 수 있습니다. 예를 들어 한 텍스트 범위가 다른 텍스트 범위 앞에서 지정된 텍스트를 삭제하는 경우 후자는 변경 내용을 추적합니다. 이러한 의미에서 텍스트 범위는 편집 변경 내용을 추적하는 Microsoft Word 책갈피와 비슷합니다. 그러나 책갈피는 텍스트를 편집할 수 없지만 텍스트 범위는 편집할 수 있습니다. 또한 범위를 사용하면 선택 영역 또는 클립보드를 변경하지 않고 텍스트를 조작할 수 있으며, 이 두 항목은 모두 최종 사용자에게 유용합니다. ITextSelection 인터페이스는 ITextRange에서 상속되며 ITextSelection의 섹션에 설명된 대로 일부 UI 지향 메서드 및 속성을 추가합니다.

문자 위치에 따라 메서드를 사용하여 텍스트 범위를 볼 수 있습니다. 특히 텍스트 범위의 특징은 다음과 같습니다.

  • 첫 번째 문자 위치인 cpFirst는 범위의 첫 번째 문자 바로 앞에 있는 삽입 지점을 가리킵니다(스토리의 시작 부분을 기준으로).
  • 범위의 마지막 문자 바로 뒤에 있는 삽입 지점을 가리키는 제한 위치 인 cpLim입니다.
스토리의 첫 번째 문자에는 cpFirst = 0이 있습니다. cp 인수에 스토리의 문자 수보다 큰 값이 있는 경우 스토리의 문자 수가 대신 사용됩니다. cp 인수가 음수이면 대신 0이 사용됩니다. Microsoft Visual Basic for Applications 익숙한 경우 cpFirst 속성 StartcpLim 속성 End를 호출합니다(범위의 시작 위치도 끝임에도 불구하고).

다음 그림에서 문자 위치는 문자를 구분하는 선으로 표시됩니다. 해당 문자 위치 값은 줄 아래에 지정됩니다. cpFirst = 5에서 시작하여 cpLim = 7에서 끝나는 범위에는 두 글자 단어가 포함됩니다. 이 그림에서 스토리의 전체 텍스트를 보여 주는 경우 스토리 길이는 30입니다.

5개 단어 중 2개가 음영 처리된 30자 텍스트 문자열 다이어그램 범위의 길이cpLim - cpFirst 또는 End - Start에 의해 지정됩니다. 길이가 0인 범위를 퇴화 또는 범위라고 하며 cp* 값, 즉 cpFirst = cpLim을 같습니다. 퇴화 범위의 예는 현재 삽입 지점입니다. null이 아닌 선택 영역은 퇴행되지 않는 범위의 예입니다.

위 그림에서 음영 처리된 셀로 표시된 5~7의 범위가 해당 텍스트를 삭제하도록 지시되어( 삭제 참조) 삽입 지점으로 전환한다고 가정합니다. 25에서 29까지의 범위는 해당 내용, 즉 텍스트 단어를 자동으로 추적합니다. 다음 그림은 결과를 보여 줍니다.

네 단어 중 하나가 음영 처리된 28자 텍스트 문자열의 다이어그램 이 그림에서는 이제 텍스트 범위가 cpFirst = 23 및 cpLim = 27로 자동으로 조정되었습니다. 범위 소유자는 편집할 때 범위 문자 위치 값을 업데이트하는 것에 대해 걱정할 필요가 없습니다.

이동 메서드의 이름은 이동할 끝을 나타내지만 메서드가 한 범위 끝을 다른 범위 끝으로 이동하려고 하면 양쪽 끝이 대상 위치로 이동됩니다. 결과적으로 삽입 지점은 대상 위치에 있습니다. 개념은 cpFirstcpLim 이 항상 기본 조건을 준수해야 한다는 것입니다.

0 <= cpFirst<= cpLim<= # 문자 스토리

또는 범위 r, 0 <= r에 해당합니다. Start <= r. End <= r. StoryLength는 이러한 수량의 이름에서 기대하는 것입니다.

또 다른 중요한 기능은 모든 스토리에 끝에 삭제할 수 없는 최종 CR(0xD) 문자가 포함되어 있다는 것입니다. 따라서 빈 스토리에도 단일 문자, 즉 최종 CR이 있습니다. 범위는 이 문자를 선택할 수 있지만 그 너머의 삽입 지점이 될 수는 없습니다. 작동 방식을 확인하려면 Word 문서에서 최종 CR을 선택한 다음 오른쪽 화살표 키를 눌러 축소합니다. 디렉터리 트리는 최종 CR 전에 축소되지만 CR은 삭제할 수 없습니다. TOM(텍스트 개체 모델)은 동일한 방식으로 작동합니다. 따라서 r인 경우 Start <= r. 끝, r. End <= (r. StoryLength – 1). CR 삭제에 대한 자세한 내용은 삭제를 참조 하세요.

일부 메서드는 다음 표에 나열된 미리 정의된 값을 사용할 수 있는 Unit 인수에 따라 달라집니다.

단위 의미
tomCharacter 1 문자.
tomWord 2 Word.
tomSentence 3 문장.
tomParagraph 4 단락.
tomLine 5 선(표시 중)입니다.
tomStory 6 이야기.
tomScreen 7 화면(PAGE UP/PAGE DOWN).
tomSection 8 섹션.
tomColumn 9 테이블 열입니다.
tomRow 10 테이블 행입니다.
tomWindow 11 창의 왼쪽 위 또는 오른쪽 아래에 있습니다.
tomCell 12 표 셀입니다.
tomCharFormat 13 상수 문자 서식 지정을 실행합니다.
tomParaFormat 14 상수 단락 서식을 실행합니다.
tomTable 15 테이블.
tomObject 16 포함된 개체입니다.
 

대부분의 단위 값은 자체 설명입니다. 그러나 추가 명확성을 위해 다음 설명이 제공됩니다.

tomWord

tomWord 상수는 단락의 끝 또는 뒤에 있는 공백을 포함하여 영숫자 또는 문장 부호 범위입니다. tomWord에 대한 화면 느낌을 얻으려면 Word 문서에서 Ctrl+오른쪽 화살표(->) 또는 Ctrl+왼쪽 화살표(<-)를 누를 때 캐리트가 이동하는 방식을 watch.

tomSentence

tomSentence 상수는 마침표, 물음표 또는 느낌표로 끝나는 텍스트 문자열을 설명하고 하나 이상의 ASCII 공백 문자(9~0xd 및 0x20) 또는 유니코드 단락 구분 기호(0x2029)가 뒤따릅니다. 후행 공백은 문장의 일부입니다. 이야기의 마지막 문장에는 마침표, 물음표 또는 느낌표가 필요하지 않습니다. 텍스트 영역의 시작은 문자열이 문법적으로 문장으로 한정되지 않더라도 tomSentence의 시작으로 한정됩니다. 다른 문장은 문장 끝을 따라야 하며 마침표, 물음표 또는 느낌표로 시작할 수 없습니다.

tomParagraph

tomParagraph 상수는 단락 끝 표시(CRLF, CR, VT(SHIFT+ENTER의 경우), LF, FF 또는 0x2029)로 끝나는 텍스트 문자열입니다. TOM 엔진은 항상 스토리 끝에 삭제할 수 없는 단락 끝 표시가 있습니다. 따라서 모든 TOM 스토리에는 자동으로 하나 이상의 tomWord, 하나의 tomSentence 및 하나의 tomParagraph가 있습니다.

tomLine

tomLine 상수는 디스플레이가 범위와 연결된 경우 디스플레이의 텍스트 한 줄에 해당합니다. 범위와 연결된 디스플레이가 없으면 tomLine은 tomParagraph로 처리됩니다. 선택 영역에는 자동으로 디스플레이와 중복된 범위가 있습니다( GetDuplicate 참조). TOM 엔진 및 컨텍스트에 따라 다른 범위에 디스플레이가 없을 수 있습니다.

Move, MoveEndMoveStart와 같은 Unit 측면에서 하나 또는 양쪽 끝을 이동하는 메서드는 서명된 Count 인수에 따라 달라집니다. ITextSelection 기하학적 이동 명령을 제외하고 Count가 0보다 크면 이동할 끝은 앞으로 이동되고(스토리 끝쪽으로) Count가 0보다 작으면 끝은 뒤로 이동됩니다(시작 부분으로 이동). 이러한 Move 메서드의 Count 기본값은 1입니다. 이러한 메서드는 카운트 단위를 이동하려고 하지만 이동은 스토리의 끝을 벗어나지 않습니다.

MoveWhile, MoveEndWhileMoveStartWhile와 같은 문자열 패턴 또는 문자열 패턴을 일치시켜 하나 또는 양쪽 끝을 이동하는 메서드는 부호 있는 Count 인수에서 제공하는 최대 문자 수까지 이동할 수 있습니다. Count가 0보다 크면 이동할 끝은 앞으로 이동되고 Count가 0보다 작으면 끝은 뒤로 이동합니다. 두 개의 특수 개수 값인 tomForward 및 tomBackward가 정의됩니다. 이러한 값은 각각 스토리의 끝과 시작 부분에 도달하도록 보장됩니다. Count의 기본값은 tomForward입니다.

Move, MoveWhileMoveUntil과 같이 퇴행되지 않은 범위를 퇴화 범위로 전환하는 Move* 메서드에서는 Count가 음수이고 Count가 양수이면 cpLim이 변경되면 cpFirst가 변경됩니다. 이 이동 후 범위의 다른 쪽 끝도 새 위치로 이동됩니다. 자세한 개수 정보는 개별 메서드를 참조하세요. 비일반 범위의 경우 MoveStart, MoveEnd, MoveStartWhile, MoveEndWhile, MoveStartUntilMoveEndUntil 메서드는 시작 위치(시작) 또는 끝 위치(끝)를 이동합니다.

tomWord, tomSentence 및 tomParagraph와 같은 연속 범위에 해당하는 단위를 선택하려면 MoveEnd 메서드를 사용합니다. tomObject와 같은 인접하지 않은 범위에 해당하는 단위를 선택하려면 EndOf 메서드를 사용합니다. 다음 개체는 상당한 중간 텍스트 후에 발생할 수 있기 때문에(있는 경우) tomCell 단위를 선택하려면 범위가 테이블 안에 있어야 합니다.

개수단위 인수에 대한 예제 및 추가 설명은 다음과 같습니다. TOM 엔진은 위의 표에 있는 모든 단위를 지원하지 않을 수 있습니다. 예를 들어 서식 있는 편집 컨트롤은 섹션의 개념을 제공하지 않고 tomSection이 제공되면 E_NOTIMPL 반환합니다. 그러나 TOM 엔진이 단위를 지원하는 경우 테이블에 지정된 인덱스 값이 있습니다.

애플리케이션은 일반적으로 ITextRange 인터페이스를 구현하지 않습니다. 풍부한 편집 컨트롤과 같은 Microsoft 텍스트 솔루션은 TOM 구현의 일부로 ITextRange 를 구현합니다.

애플리케이션은 Range 메서드를 호출하여 ITextRange 포인터를 검색할 수 있습니다.

요구 사항

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

추가 정보

개념

IDispatch

텍스트 개체 모델

텍스트 개체 모델 사용