newhand1
lulalala9527
采纳率0%
2015-11-19 03:04 阅读 1.5k

检测静态文本控件是否大于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条回答 默认 最新

  • zuishikonghuan zuishikonghuan 2015-11-19 14:49

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

    点赞 1 评论 复制链接分享

相关推荐