복잡한 스크립트 처리
다음은 미세한 입력 체계 효과 또는 복잡한 스크립트를 지원하기 위한 텍스트 표시 및 관련 처리 옵션입니다.
- 텍스트 함수
- 컨트롤 편집
- 서식 있는 편집 컨트롤
- Uniscribe
선택하는 옵션은 다음 요인에 따라 달라집니다.
- 텍스트 또는 스크립트의 형식입니다.
- 구현 모델(예: 텍스트 레이아웃 및 애플리케이션의 줄 바꿈 처리).
- 기존 애플리케이션의 업데이트와 새 애플리케이션 만들기를 비교합니다.
일반적으로 비교적 간단한 스크립트 처리를 수행하는 애플리케이션은 복잡한 스크립트를 처리하기 위한 옵션을 선택할 수 있습니다. 그러나 복잡한 스크립트 처리를 가장 완벽하게 제어하려면 Uniscribe를 사용하는 것이 좋습니다.
텍스트 함수를 사용하여 복잡한 스크립트 처리
대부분 일반 텍스트를 사용하는 애플리케이션, 즉, 동일한 서체, 가중치, 색 등을 사용하는 텍스트는 일반적으로 표준 텍스트 함수(예: TextOut, ExtTextOut, TabbedTextOut, DrawText및 getTextExtentExPoint같은 표준 텍스트 함수를 사용하여 텍스트를 작성하고 줄 길이를 측정했습니다. 이러한 함수는 복잡한 스크립트 및 미세한 입력 체계 효과에 대한 처리를 지원합니다. 자세한 내용은 글꼴 및 텍스트참조하세요.
일반적으로 표준 텍스트 지원은 복잡한 스크립트를 처리하는 애플리케이션에 투명합니다. 그러나 미세한 입력 체계를 지원하고 복잡한 스크립트를 처리하는 애플리케이션을 작성할 때 따라야 하는 몇 가지 특정 규칙을 알고 있어야 합니다.
- 애플리케이션은 버퍼에 문자를 저장하고 사용자가 입력한 대로 각 문자에 ExtTextOut 호출하는 대신 한 번에 전체 텍스트 줄을 표시해야 합니다. 이 메커니즘을 사용하면 고급 텍스트 셰이핑 모듈이 컨텍스트를 사용하여 문자 모양 올바르게 순서를 다시 지정하고 생성할 수 있습니다.
- 문자 모양 너비는 컨텍스트에 따라 달라질 수 있으므로 애플리케이션은 GetTextExtentExPoint 사용하여 캐시된 문자 너비에서 줄 길이를 계산하는 대신 줄 길이를 결정해야 합니다.
- 애플리케이션은 필요에 따라 오른쪽에서 왼쪽으로 읽기 순서 및 오른쪽 맞춤에 대한 지원을 추가해야 합니다.
- 복잡한 스크립트 또는 미세한 입력 체계에 필요한 순서 변경 및 컨텍스트 처리를 위해서는 간단한 스크립트에 대한 기본 텍스트 표시에 대한 처리가 크게 증가해야 합니다. 따라서 성능 문제를 방지하기 위해 애플리케이션은 결과를 표시하고 사용자에게 컨트롤을 반환하기 전에 많은 양의 텍스트를 처리해서는 안 됩니다.
편집 컨트롤을 사용하여 복잡한 스크립트 처리
표준 Windows 편집 컨트롤은 다국어 텍스트 및 복잡한 스크립트를 지원하도록 확장되었습니다. 확장 지원에는 입력 및 표시뿐만 아니라 문자 클러스터에 대한 올바른 커서 이동(예: 태국어 및 Devanagari 스크립트)이 포함됩니다. 자세한 내용은 편집 컨트롤을 참조하세요.
서식 있는 편집 컨트롤을 사용하여 복잡한 스크립트 처리
Rich Edit 3.0은 유니스크립트를 활용하여 텍스트 레이아웃 애플리케이션을 특정 스크립트의 복잡성으로부터 격리하는 상위 수준의 인터페이스 컬렉션입니다. 리치 편집은 애플리케이션의 기본 목적이 반드시 텍스트 레이아웃이 아니더라도 복잡한 스크립트를 표시하는 가장 간단한 방법입니다. Rich Edit는 풍부한 유니코드 다국어 텍스트와 간단한 일반 텍스트를 빠르고 다양하게 편집할 수 있습니다. 여기에는 광범위한 메시지 및 COM 인터페이스, 텍스트 편집, 서식 지정, 줄 바꿈, 간단한 표 레이아웃, 세로 텍스트 레이아웃, 양방향 텍스트 레이아웃, Indic 및 Thai 지원, Microsoft Word와 유사한 편집 사용자 인터페이스 및 텍스트 개체 모델 인터페이스가 포함됩니다.
리치 편집 인터페이스와 함께 애플리케이션은 Rich Edit TextOut 함수를 사용하여 자동으로 구문을 분석하고, 도형을 만들고, 위치를 지정하고, 줄을 끊을 수 있습니다. 자세한 내용은 서식 있는 편집 컨트롤을 참조하세요.
Uniscribe를 사용한 복잡한 스크립트 처리
유니스크립트 미세한 입력 체계 효과 및 복잡한 스크립트와 관련된 텍스트 처리를 위한 가장 광범위한 지원을 제공합니다. 아랍어, Devanagari 및 태국어와 같은 스크립트에 있는 복잡한 규칙을 지원합니다. 아랍어 및 히브리어와 같이 오른쪽에서 왼쪽으로 작성된 스크립트를 처리하고 스크립트의 혼합을 지원합니다. 또한 Uniscribe는 응용 프로그램에서 미세 입력 체계 효과를 제어하는 데 사용할 수 있는 OpenType 글꼴 기능을 노출합니다. 자세한 내용은 복잡한 스크립트 처리을 참조하세요.
관련 항목