想从ClistCtrl派生一个新类,实现隐藏列
目前有两种思路,一个是设置列宽为0,一个是记录隐藏的列信息两种思路都有问题:
1 设置列宽为0
如果设置了列宽为0,那么还需要忽略掉HDN_BEGINTRACK(A/W)通知,来锁定隐藏的列,不让他拖动,看上去似乎没问题。
首先,有点小瑕疵,当鼠标放在那个隐藏列的上面时,由于屏蔽了拖动,导致用起来和普通的CListCtrl有差别(有时拖不动,或者在该显示拖动鼠标的时候没有显示)。
其次,当若干个列被拖成列宽为0,并且和我们隐藏的列重合时,都拖不出来了!
所以,这种被很多人推荐的方法不好!2 记录隐藏列信息
当恢复的时候,需要插入一个新列,并且重新设置他们的text,考虑到排序,需要将这些text与一行绑定,现在的问题是:如何唯一确定一行? 我始终找不到一个比较好的方案。希望高手赐教!!!
目前有两种思路,一个是设置列宽为0,一个是记录隐藏的列信息两种思路都有问题:
1 设置列宽为0
如果设置了列宽为0,那么还需要忽略掉HDN_BEGINTRACK(A/W)通知,来锁定隐藏的列,不让他拖动,看上去似乎没问题。
首先,有点小瑕疵,当鼠标放在那个隐藏列的上面时,由于屏蔽了拖动,导致用起来和普通的CListCtrl有差别(有时拖不动,或者在该显示拖动鼠标的时候没有显示)。
其次,当若干个列被拖成列宽为0,并且和我们隐藏的列重合时,都拖不出来了!
所以,这种被很多人推荐的方法不好!2 记录隐藏列信息
当恢复的时候,需要插入一个新列,并且重新设置他们的text,考虑到排序,需要将这些text与一行绑定,现在的问题是:如何唯一确定一行? 我始终找不到一个比较好的方案。希望高手赐教!!!
如果想更加复杂的保存,我一般写一个链表用来保存完整的list。在程序上同时维护List和
链表。保证链表和list的统一。
这样肯定是可以的,但实现很烦琐,也容易出错看来没有什么简单的方法,感觉windows的这个List View有些呆板,导致一些常用的功能实现起来较麻烦。还是希望有高手想出简单的方法~~~~