2017-02-20 11 views
2

rich edit 컨트롤에서 줄 수를 계산 중입니다. 나는 마우스 휠 + 클릭률 (CTR)를 통해 텍스트의 크기를 변경하기 시작할 때까지 마우스 휠로 텍스트 크기를 조정할 때 TEXTMETRIC의 높이가 잘못되었습니다.

현재 나는 코드는 라인의 오른쪽 번호를 산출

TEXTMETRIC tm; { 
    HDC hdc = GetDC(hwndRichEdit); 
    GetTextMetrics(hdc, &tm); 
    ReleaseDC(hwndRichEdit, hdc); 
} 

RECT editRect; 
GetClientRect(hwndRichEdit, &editRect); 
long int countLines = (editRect.bottom - editRect.top)/(tm.tmHeight + tm.tmExternalLeading); 

다음 코드를 사용하고 있습니다.

마우스 휠로 텍스트 크기를 조정하더라도 올바른 텍스트 높이를 얻을 수 있습니까?

N.B. EN_UPDATE 알림으로 회선 수를 다시 계산 중입니다.

답변

1

컨트롤에 EM_GETZOOM 메시지를 보내 현재 확대/축소 비율을 검색 할 수 있습니다. countLines 값을 줌 비율로 나누면 올바른 행 수가 산출됩니다. 부서를 구현하려면 MulDiv API 호출을 사용하십시오.

+0

고마워요! 예상대로 작동합니다! – Lionishy