讨论CListCtrl的列隐藏,大侠们来看看
想从ClistCtrl派生一个新类,实现隐藏列
目前有两种思路,一个是设置列宽为0,一个是记录隐藏的列信息
两种思路都有问题:
1 设置列宽为0
如果设置了列宽为0,那么还需要忽略掉HDN_BEGINTRACK(A/W)通知,来锁定隐藏的列,不让他拖动,看上去似乎没问题。
首先,有点小瑕疵,当鼠标放在那个隐藏列的上面时,由于屏蔽了拖动,导致用起来和普通的CListCtrl有差别(有时拖不动,或者在该显示拖动鼠标的时候没有显示)。
其次,当若干个列被拖成列宽为0,并且和我们隐藏的列重合时,都拖不出来了!
所以,这种被很多人推荐的方法不好!
2 记录隐藏列信息
当恢复的时候,需要插入一个新列,并且重新设置他们的text,考虑到排序,需要将这些text与一行绑定,现在的问题是:如何唯一确定一行?
我始终找不到一个比较好的方案。。。。希望高手赐教!!!