在开发中有时需要一个只有一列的CListCtrl,但是在设置列宽之后再插入多项数据后,有时会因为出现纵向滚动条导致列宽过大而出现横向滚动条,下面我们就来消除横向滚动条。
具体代码如下:
主要原理是如果CListCtrl列数为不为1时返回;数据项为0或者全部数据项项高度不足以出现纵向滚动条时设置列宽为客户区宽度;如果出现纵向滚动条时设置列宽为客户区宽度减去滚动条宽度以及滚动条边框宽度。
使用时机
如果重载CListCtrl的InsertItem方法,加入此代码,那么会因为每次插入数据都进行一次列宽调整,而导致屏幕闪烁。所以应该将ResetColumnWidth()放在CListCtrl加载全部数据之后。
(—完—)