삽입 지점을 지정된 단위 수만큼 앞으로 또는 뒤로 이동합니다. 범위가 비일반적인 경우 범위는 Count에 따라 양쪽 끝의 삽입 지점으로 축소된 다음 이동됩니다.
구문
HRESULT Move(
long Unit,
long Count,
long *pDelta
);
매개 변수
Unit
형식: long
사용할 단위입니다. 기본값은 tomCharacter입니다. 다른 값에 대한 자세한 내용은 ITextRange의 토론을 참조하세요.
Count
형식: long
과거로 이동할 단위의 수입니다. 기본값은 1입니다. Count가 0보다 크면 동작이 앞으로( 스토리 끝쪽으로) 이동되고 Count가 0보다 작으면 동작이 뒤로 시작됩니다. Count가 0이면 범위가 변경되지 않습니다.
pDelta
형식: long*
삽입 지점이 지나간 실제 단위수입니다. 포인터는 NULL일 수 있습니다. 자세한 내용은 주의 섹션을 참조하세요.
반환 값
형식: HRESULT
메서드는 HRESULT 값을 반환합니다. 메서드가 삽입 지점을 이동하는 데 성공하면 S_OK 반환합니다. 메서드가 실패하면 다음 오류 코드 중 하나를 반환합니다. COM 오류 코드에 대한 자세한 내용은 COM에서 오류 처리를 참조하세요.
| 반환 코드 | 설명 |
|---|---|
|
단위 는 지원되지 않습니다. |
|
다른 이유로 인해 실패합니다. |
설명
범위가 퇴화(삽입 지점)인 경우 이 메서드는 삽입 지점 CountUnits를 이동하려고 시도합니다.
범위가 퇴화되지 않고 Count 가 0보다 큰 경우 이 메서드는 끝 문자 위치의 범위를 축소하고 결과 삽입 지점을 단위 경계 앞으로 이동한 다음(아직 1개에 있지 않은 경우) Count - 1 Unit을 앞으로 이동하려고 시도합니다. 범위가 퇴화되지 않고 Count 가 0보다 작은 경우 이 메서드는 시작 문자 위치의 범위를 축소하고 결과 삽입 지점을 단위 경계로 뒤로 이동한 다음(아직 없는 경우) | 이동하려고 시도합니다.Count| - 1 단위뒤로. 따라서 두 경우 모두 축소 후 단위 의 시작 또는 끝으로 이동하든 관계없이 퇴화하지 않은 범위를 삽입 지점으로 축소하면 단위로 계산됩니다.
ITextRange::Move 메서드는 pDelta = 실제로 이동된 단위수를 반환합니다. 이 메서드는 삽입 지점을 이 범위의 스토리 이상으로 이동하지 않습니다. CountUnits가 삽입 지점을 스토리의 시작 부분으로 이동하면 시작 스토리로 이동되고 그에 따라 pDelta가 설정됩니다. 마찬가지로 , CountUnits가 스토리의 끝을 넘어 이동하면 스토리 끝으로 이동됩니다.
ITextRange::Move 메서드는 동작 방향이 기하학적 방향이 아니라 논리적이라는 점을 제외하고 UI 지향 MoveLeft 및 MoveRight 메서드와 유사하게 작동합니다. 즉, ITextRange::Move 를 사용하면 방향이 끝 또는 스토리의 시작쪽으로 이동합니다. 언어에 따라 이야기의 끝으로 이동하는 것은 왼쪽 또는 오른쪽으로 이동할 수 있습니다.
개수에 대한 느낌을 얻으려면 Microsoft Word 문서에서 Ctrl+오른쪽 화살표를 눌러 다양한 항목을 선택합니다. 왼쪽에서 오른쪽 텍스트에서 이 키 입력은 , 및 와 MoveRight(tomWord, 1)동일하게 Move(tomWord, 1)동작합니다.
개수 는 Ctrl+오른쪽 화살표를 누른 횟수에 해당합니다.
예를 들어 다음 두 그림 모두에 표시된 선택 영역에 대해 Ctrl+오른쪽 화살표를 누르면 문자 위치 8에 삽입 지점이 생성됩니다. 이 명령은 최종 문자 위치(각각 7 및 8)에서 선택 영역을 축소하고 다음 tomWord 경계로 이동하기 때문에 입니다.
첫 번째 선택 영역에는 문자 위치 7의 빈 공간이 포함되지 않으므로 Ctrl+오른쪽 화살표가 공백을 지나 문자 위치 8의 tomWord 경계로 이동합니다. 끝 문자 위치는 이미 두 번째 선택 영역에 대한 tomWord 경계에 있으므로 Ctrl+오른쪽 화살표는 해당 경계에서 선택 영역을 축소합니다. 마찬가지로 Ctrl+왼쪽 화살표는 이 텍스트에 대해 와 같이 Move(tomWord, -1)MoveLeft(tomWord, 1) 작동하고 이미 tomWord 경계에 있는 문자 위치 5에서 첫 번째 선택 영역을 축소하므로 더 이상 동작이 발생하지 않습니다. 그러나 Ctrl+왼쪽 화살표는 문자 위치 4에서 두 번째 선택 영역을 축소한 다음, 동작 방향의 다음 tomWord 경계이므로 0으로 이동합니다.
반환 인수 pDelta는 퇴행되지 않은 범위를 축소하고 단위경계로 이동하기 위해 하나의 Unit 을 포함하여 삽입 지점이 이동되는 Unit 의 수와 동일하게 설정됩니다. 따라서 범위가 스토리 끝에 있는 삽입 지점일 때와 같이 동작이 없고 축소가 발생하지 않으면 pDelta 가 0으로 설정됩니다. 이 방법은 전체 스토리를 처리하는 프로그램 루프를 제어하는 데 유용합니다.
위에서 언급한 두 경우 모두에서 를 호출 Move(tomWord, 1) 하면 범위가 축소되었기 때문에 pDelta 가 1과 같습니다. 마찬가지로 호출 Move(tomWord, -1) 은 두 경우 모두 pDelta 를 -1과 동일하게 설정합니다. 단위의 일부를 단위 경계로 이동하거나 이동하지 않고 축소하면 단위가 이동된 것으로 계산됩니다.
동작 방향은 일반 텍스트 지원 저장소의 논리적 문자 순서를 나타냅니다. 이 방법은 국제 소프트웨어에서 왼쪽, 오른쪽 및 위쪽 및 아래쪽과 같은 기하학적 순서의 문제를 방지합니다. 물론 키보드에는 호출할 화살표 키가 있으므로 편집 엔진에는 이러한 기하학적 메서드가 여전히 필요합니다. 범위가 실제로 ITextSelection 개체인 경우 MoveLeft 및 MoveRight 와 같은 메서드를 사용할 수 있습니다.
Unit이 문자(tomCharacter)를 지정하는 경우 TOM(텍스트 개체 모델)은 유니코드 문자 집합을 사용합니다. 유니코드와 멀티바이트 문자 집합 간에 변환하려면 MultiByteToWideChar 및 WideCharToMultiByte 함수를 사용하면 가져오기 및 내보내기 시 유니코드 및 멀티바이트 문자 집합 간에 각각 쉽게 변환할 수 있습니다. 자세한 내용은 열기를 참조 하세요. 이 연결에서 CR/LF(캐리지 리턴/줄 바꿈)를 사용하여 단락을 구분하는 것은 DBCS(더블 바이트 문자 집합)만큼 문제가 됩니다. ITextSelection UI 메서드는 단일 문자인 것처럼 CR/LF를 통해 백업되지만 ITextRange::Move 메서드는 CR/LF를 두 문자로 계산합니다. 단일 문자를 단락 구분 기호로 사용하는 것이 더 낫습니다. TOM에서는 유니코드 단락 구분 기호 문자인 0x2029 허용됩니다. 일반적으로 TOM 엔진은 CR/LF, CR(캐리지 리턴), LF(줄 바꿈), 세로 탭, 양식 피드 및 0x2029 지원해야 합니다. Microsoft Rich Edit 2.0은 이전 버전과의 호환성을 위해 CR/CR/LF도 지원합니다.
시작 또는 끝 위치 개수단위의 범위를 각각 이동하는 ITextRange::MoveStart 및 ITextRange::MoveEnd 메서드도 참조하세요.
요구 사항
| 요구 사항 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
| 지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
| 대상 플랫폼 | Windows |
| 헤더 | tom.h |
| DLL | Msftedit.dll |
추가 정보
개념
기타 리소스
참조