这两天悲剧满满。。
一个一直很正常的程序,在我换了rmbp后,用vmware win7 运行竟然挂了。
本来一直是这样的:
结果它这样了:
多亏vs强大的crash stack 跟踪功能,
在CCheckListBox::DrawItem中检查行高度cyItem 如果小于绘制文本所需要的高度CalcMiniumItemHeight(),就会嗝屁了。
CalcMiniumItemHeight()会根据当前系统字体计算文本需要的高度,在实例中CalcMiniumItemHeight()返回22,cyItem=20
解决方法两个:
1. 改小窗口字体
2. 在checkListBox 插入第一行文本前,调用SetItemHeight, 把高度设置高一点