我正在计算丰富的编辑控件中的行数。
目前我正在使用下一个代码
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
通知的行数。
您可以将EM_Getzoom消息发送到控件以检索当前变焦比率。将countLines
值除以缩放比率应得出正确的线计数。使用Muldiv API调用来实现该部门。