Botcher::Blog

快意人生 水煮沉浮
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CMFCListCtrl使用GroupView时组内排序解决方案

Posted on 2010-07-08 23:19  Botcher  阅读(1787)  评论(0)    收藏  举报

CMFCListCtrl是MFC Feature Pack中提供的新类,它很好的封装了CListCtrl的排序功能,

只要重写比较函数就OK了。

 

virtual int OnCompareItems(LPARAM lParam1, LPARAM lParam2, int iColumn);

 

但是,在使用GroupView模式时,以上的比较函数仍然被调用,但并没有排序。

 

AFX_INLINE int CListCtrl::EnableGroupView(BOOL fEnable)
{
	ASSERT(::IsWindow(m_hWnd));
	return (int)ListView_EnableGroupView(m_hWnd, fEnable); // LVM_ENABLEGROUPVIEW
}

 

面对以上问题,对CMFCListCtrl派生出CGroupSortableListCtrl类,以实现组内排序。


image   image

 

以下附上代码: