自己写了一个CSortListCtrl 
每次先用for (int i=0; i<GetItemCount(); i++)
SetItemData(i,i);
   为Data赋值。然后使用CListCtrl自带的SortItems( CompareFunction, reinterpret_cast<DWORD>( this ) ) ;来排序。排序倒是正确的,但是CompareFunction( LPARAM lParam1, LPARAM lParam2, LPARAM lParamData )元素的比较顺序,我有点儿搞不明白我给列表里依次放入a,b,c,d,e,f,g,h,i,j,k,l,m,共13个元素(lParam从0到12),但单击表头排序CompareFunction元素的比较顺序是这样的lParam1, lParam2
1-b, 2-c
0-a, 1-b
4-e, 5-f
3-d, 4-e
0-a, 3-d
1-b, 3-d
2-c, 3-d
7-h, 8-i
6-g, 7-h
9-j, 10-k
11-l, 12-m
9-j, 11-l
10-k, 11-l
6-g, 9-j
7-h, 9-j
8-i, 9-j
0-a, 6-g
1-b, 6-g
2-c, 6-g
3-d, 6-g
4-e, 6-g
5-f, 6-g
-----------------我把m提前  列表顺序a,m,b,c,d,e,f,g,h,i,j,k,l
1-m,2-b
0-a,2-b
4-d,5-e
3-c,4-d
0-a,3-c
2-b,3-c
1-m,3-c
1-m,4-d
1-m,5-e
7-g,8-h
6-f,7-g
9-i,10-j
11-k,12-l
9-i,11-k
10-j,11-k
6-f,9-i
7-g,9-i
8-h,9-i
0-a,6-f
2-b,6-f
3-c,6-f
4-d,6-f
5-e,6-f
1-m,6-f
1-m,7-g
1-m,8-h
1-m,9-i
1-m,10-j
1-m,11-k
1-m,12-l1。为什么 首先比较的是第一和第二两个数据,而不是第0项和第1项先比??2。SortItems使用的是什么排序方法?