检测静态文本控件是否大于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();
////////////////////////////////////////
后面的显示程序就不写了,已验证,无错
///////////////////////////////////////////
上面的程序实现不了功能,求教大神哪里错了

1个回答

如果我没有记错,GetTextExtent得到的高度是单个字符高度而不是字符串的高度,你应该通过这个高度和字符串宽度自己计算出来真实的高度。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问