MFC CCheckListBox 在rMBP的vmware win7上添加行崩溃

这两天悲剧满满。。

一个一直很正常的程序,在我换了rmbp后,用vmware win7 运行竟然挂了。

本来一直是这样的:


结果它这样了:



多亏vs强大的crash stack 跟踪功能,

在CCheckListBox::DrawItem中检查行高度cyItem 如果小于绘制文本所需要的高度CalcMiniumItemHeight(),就会嗝屁了。

CalcMiniumItemHeight()会根据当前系统字体计算文本需要的高度,在实例中CalcMiniumItemHeight()返回22,cyItem=20



解决方法两个:

1.  改小窗口字体

2. 在checkListBox 插入第一行文本前,调用SetItemHeight, 把高度设置高一点

猜你喜欢

转载自blog.csdn.net/wadahana/article/details/49478061
MFC
今日推荐