2009-05-02 4 views
0

그렇지 않으면 너무 길어질 창에 표시 할 텍스트 블록을 워드 랩핑하려고합니다. 사용중인 글꼴은 고정 너비 글꼴이 아니므로 GetSystemMetrics가 텍스트에 정확한 값을 반환하지 않습니다.Wordwrap Win32

static 창을 사용하면 여기에 하나의 중요한 정보를 표시하지 않기 때문에 여기에는 옵션이 없습니다. 단어 랩핑 후에 그려지는 텍스트의 높이.

아이디어가 있으십니까?

Billy3는

+0

2 개의 답변이 본질적으로 같기 때문에 이전에 게시 된 답변을 확인했습니다. –

답변

4

Win32 API 호출 DrawtextEx을 확인하십시오. DT_CALCRECT 옵션을 전달하여 사각형을 계산하기를 원한다고 Windows에 알려야합니다.

+0

대단히 감사합니다 :) –

2

당신은 DT _ CALCRECT 플래그 세트로 DrawText() API 기능을 사용할 수 있습니다. 먼저 HDC에 맞는 글꼴을 선택해야합니다.

+0

고맙습니다 :) –

1

전체 텍스트를 단일 글꼴로 표시하려는 경우 원하는 모든 작업을 수행합니다.

글꼴을 혼합해야하는 경우 직접 작업해야합니다. 이 경우 GetTextMetrics() (GetSystemMetrics() 아님) 및 GetTextExtentExPoint32()과 같은 API를보고 각 실행에 대한 위치와 크기를 파악하는 것이 좋습니다.

복잡한 스크립트 (예 : 오른쪽에서 왼쪽으로 쓰는 언어 및 문맥에 따라 문자가 바뀌는 스크립트)를 처리해야하는 경우 Uniscribe가 필요합니다. 주의 : Uniscribe는 강력하지만 매우 낮습니다. 더 높은 수준의 인터페이스로 랩핑하려면 많은 노력이 필요합니다. 복잡한 스크립트 처리가 필요한 경우 브라우저 컨트롤을 사용하는 것이 더 나을 것입니다.