2009-12-22 4 views
0

MFC를 사용하고 일반 old GDI를 사용하여 빌드 된 이전 응용 프로그램에 SVG 내보내기 지원을 추가하고 있습니다. SVG 1.1은 텍스트 배치를 지원하지 않으므로 수동으로해야합니다.GDI HFONT의 라인 높이를 어떻게 얻을 수 있습니까?

응용 프로그램에서 CFont 인스턴스 (HFONT 포함)를 제공합니다. CFont::GetTextExtentPoint()을 사용하여 텍스트의 너비를 계산할 수 있지만 아직 글꼴의 줄 높이를 얻는 방법을 찾지 못했습니다.

내 글꼴의 줄 높이는 어떻게 얻을 수 있습니까? CFont::GetTextExtentPoint()은 항상 Y 좌표에서 줄 높이를 반환합니다 (대신 텍스트의 꼭 맞게 맞추는 경계 상자의 실제 높이)? ,

CDC desktopDC; 
desktopDC.Attach(::GetDC(0)); 
desktopDC.SelecTObject(&font); 

::TEXTMETRIC metrics; 
desktopDC.GetTextMetrics(&metrics); 

int lineHeight = metrics.tmHeight + metrics.tmExternalLeading; 

그것은 조금 성가신, 그래서 거기에 짧은, 더 확실한 해결책을의 경우 (경우 또는 사람이 CFont::GetTextExtentPoint() 실제 라인 높이로 날을 제공하는 것을 확인할 수) :

답변

2

은 내가 가능한 대답을 생각 나는 아직도 그것을 듣고 기뻐할 것이다;)

0

나는 대답을 this question에 설명한다. 질문은 텍스트 너비에 관한 것이지만 텍스트 높이도 얻을 수 있습니다.

+0

미안하지만, 내가 찾고있는 것이 아닙니다. 줄 높이가 필요합니다 : 한 줄에서 다음 줄로의 오프셋, 즉 실제 문자열에 의존하지 않는 정적 텍스트 높이와 줄 사이의 간격. – Cygon

관련 문제