想达到如下效果,如itemname为a1,a2,A1,B2,c,D,b1的排序结果为a1、A1、a2、b1、B2、c、D
也就是说大小写不分开排序。。先谢过了

解决方案 »

  1.   

    SortChildren  按字母排序, 
    SortChildrenCB  按自己写的排序函数排序 MSDN上的例子 
    // Sort the item in reverse alphabetical order. 
    static int CALLBACK 
    MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) 

      // lParamSort contains a pointer to the tree control. 
      // The lParam of an item is just its handle, 
    // as specified with <A HREF="_mfc_ctreectrl.3a3a.setitemdata.htm">SetItemData </A> 
      CTreeCtrl* pmyTreeCtrl = (CTreeCtrl*) lParamSort; 
      CString    strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM) lParam1); 
      CString    strItem2 = pmyTreeCtrl->GetItemText((HTREEITEM) lParam2);   return strcmp(strItem2, strItem1); 
    }   // The pointer to my tree control. 
      extern CTreeCtrl* pmyTreeCtrl; 
      TVSORTCB tvs;   // Sort the tree control's items using my 
      // callback procedure. 
      tvs.hParent = TVI_ROOT; 
      tvs.lpfnCompare = MyCompareProc; 
      tvs.lParam = (LPARAM) pmyTreeCtrl;   pmyTreeCtrl->SortChildrenCB(&tvs); 
      

  2.   

    要想不分大小写排序,还是用SortChildrenCB,自己写一个排序函数这个位置有关于SortChildrenCB用法的介绍http://hi.baidu.com/beege/blog/item/4eb7b282b8dad2ba6c811995.html
      

  3.   


    排序函数指的是 写出对strItem1、strItem2 的判断吗
     CString    strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM) lParam1); 
     CString    strItem2 = pmyTreeCtrl->GetItemText((HTREEITEM) lParam2); 如果strItem1与strItem2 相比位置在前 就返回负值,否则strItem1的位置应该靠后,就返回正值 是这样吗?
      

  4.   

    网上有很多字符比较,排序的例子,你下载改一下就行了,然后用SortChildrenCB实现
      

  5.   

    MSDN里面有现在的例子,拿过来修改一个排序的函数就可以了。