서식 있는 편집 컨트롤에서 글꼴 바인딩을 사용하는 방법

Microsoft Rich Edit 3.0은 컨텍스트에 따라 일반 텍스트 문자에 문자 집합을 할당합니다. 몇 가지 예는 다음과 같습니다.

  • 그리스 문자에는 GREEK_CHARSET이 할당됩니다.
  • 한글 기호에는 HANGUL_CHARSET이 할당됩니다.
  • 근처에 kana가 있으면 한자가 SHIFTJIS_CHARSET로 할당되고 근처에 kana가 없으면 GB2312_CHARSET이 할당됩니다.
  • 비중립 ANSI 문자에는 모든 이벤트에서 ANSI_CHARSET이 할당됩니다.

참고

서식 있는 편집 컨트롤은 내부적으로 유니코드를 사용하므로 여기에서 사용된 문자 집합은 글꼴 사양에 사용된 원래 문자 집합과 다릅니다. 그러나 CHARFORMAT 구조체에는 문자 집합에 대해 잘 정의된 위치가 있습니다.

 

공백 및 숫자와 같은 중립 문자에는 컨텍스트에 따라 문자 집합이 할당됩니다. 예를 들어 동일한 문자 집합의 문자들 사이에 있는 공백은 해당 문자 집합을 가져옵니다. 양방향 텍스트에 사용되는 중립 문자 및 숫자에는 유니코드 양방향 알고리즘에 기반한 방식으로 문자 집합이 할당됩니다.

알아야 하는 작업

기술

필수 구성 요소

  • C/C++
  • Windows 사용자 인터페이스 프로그래밍

지침

서식 있는 편집 컨트롤에서 글꼴 바인딩 사용

문자 집합이 할당된 후 Rich Edit은 삽입 지점 주위의 텍스트를 앞뒤로 스캔하여 문자 집합에 사용된 가장 가까운 글꼴을 찾습니다. 문자 집합에 사용된 글꼴이 없는 경우 Rich Edit은 해당 문자 집합에 클라이언트가 선택한 글꼴을 사용합니다. 클라이언트가 문자 집합의 글꼴을 지정하지 않은 경우 Rich Edit은 해당 문자 집합의 기본 글꼴을 사용합니다. 클라이언트가 다른 글꼴을 원하는 경우 언제든지 변경할 수 있지만 대부분 이 방식으로 작동합니다. 현재 기본 글꼴의 선택 항목은 다음 표를 기반으로 합니다. 기본 글꼴은 프로세스별로 설정되며 UI와 비UI에 사용되는 글꼴 목록이 구별되어 있습니다.

언어 UI 글꼴 이름 UI 글꼴 크기 비UI 글꼴 이름 비UI 글꼴 크기
서부, CE, ME, 베트남어 굴림 8 Arial 10
일본어 MS UI Gothic 9 MS P Gothic 10
한국어 굴림 9 굴림 9
중국어(간체) Simsun 9 SimSun 10
중국어(번체) PMingLiU 9 PMingLiU 9
태국어 MS Sans Serif 8 굴림 14
기호 WingDings 8 WingDings 10
데바나가리어 Mangal 8 Mangal 10
타밀어 Latha 8 Latha 10
조지아어, 아르메니아어 Arial 유니코드 8 Arial 유니코드 10

 

따라서 기본 글꼴 바인딩 테이블(항목에 문자 집합, 글꼴 이름 및 크기 포함)에서 서식 있는 편집을 사용하면 ANSI_CHARSET으로 여러 문자 집합과 연결하고 적절한 문자 집합으로 다른 글꼴과 일대일로 연결할 수 있습니다. 더 정확하게 말하자면 서식 있는 편집은 다른 대안을 찾을 수 없을 때 항상 ANSI_CHARSET이 선택한 글꼴을 사용합니다. 이보다 더 정교하게 지정할 수 있습니다. 예를 들어 아랍어 실행에는 특정 ARABIC_CHARSET, 그리스어 실행에는 특정 그리스어 글꼴 등을 할당할 수 있습니다. 이 정교한 설정은 원하는 문자 집합 스탬프가 있는 글꼴이 글꼴에 바인딩된 영역 앞의 문서 어딘가에 있는 경우에도 사용됩니다.

현재 Rich Edit은 문자 집합을 지원한다고 클레임하지만 불완전한 글꼴의 누락된 문자 모양을 처리하지 않습니다. 복잡한 스크립트가 표시될 때 Rich Edit은 이러한 문자 모양이 누락되었다는 것을 알게 되지만 백업 저장소에서 새 글꼴을 사용하지는 않습니다. 일반적으로 운영 체제에서 기본 글꼴을 연결할 때 이 작업을 수행합니다.

설명

Rich Edit 4.1: 스크립트의 기본 글꼴을 설정하려면 CHARFORMAT2EM_SETCHARFORMAT를 호출하고 yHeight, bCharSet, bPitchAndFamily, szFaceName, lcid 멤버의 값을 지정합니다. 또한 특정 코드 페이지의 기본 글꼴을 얻으려면 CHARFORMAT2EM_GETCHARFORMAT를 호출하고 bCharSet, lcid 멤버의 값을 지정합니다.

서식 있는 편집 컨트롤 사용

Windows 공용 컨트롤 데모(CppWindowsCommonControls)