使用鼠标滚轮调整文本大小时,TEXTMETRIC 给出错误的高度
TEXTMETRIC is giving wrong height when resizing text with mouse wheel
我正在计算 rich edit 控件中的行数。
目前我正在使用下一个代码
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 message to the control to retrieve the current zoom ratio. Dividing the countLines
value by the zoom ratio should yield the correct line count. Use the MulDiv API调用来实现除法。
我正在计算 rich edit 控件中的行数。
目前我正在使用下一个代码
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 message to the control to retrieve the current zoom ratio. Dividing the countLines
value by the zoom ratio should yield the correct line count. Use the MulDiv API调用来实现除法。