2017-02-20 26 views
2

我正在計算富文本編輯控件中的行數。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); 

的代碼產生了行權數量,直到我開始通過鼠標滾輪+ CTR改變文字的大小。

即使使用鼠標滾輪調整文本大小,是否可以獲得正確的文本高度?

N.B.我正在重新計算EN_UPDATE通知的行數。

回答

1

您可以發送EM_GETZOOM消息到控件以檢索當前縮放比例。將countLines值除以縮放比例應該會產生正確的行數。使用MulDiv API調用來實現除法。

+0

謝謝!它按預期工作! – Lionishy

相關問題