问题描述
- 检测静态文本控件是否大于3行,是就清空输出的字符串,下面MFC代码实现不了
-
CClientDC dc(GetDlgItem(IDC_STATIC));//此行代码验证过,无错
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);//获得设备描述表中当前字体的高度
CSize sz=dc.GetTextExtent(m_str2);//获得字符串高度
if(3*tm.tmHeight<sz.cy)//3倍的字符高度大于字符串高度,就清空字符串
m_str2.Empty();
////////////////////////////////////////
后面的显示程序就不写了,已验证,无错
///////////////////////////////////////////
上面的程序实现不了功能,求教大神哪里错了
解决方案
如果我没有记错,GetTextExtent得到的高度是单个字符高度而不是字符串的高度,你应该通过这个高度和字符串宽度自己计算出来真实的高度。
时间: 2024-11-03 13:45:01