• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-60  評論-111  文章-0  trackbacks-0
            msdn原文

            CListCtrl::SortItems

            This method sorts list view items using an application-defined comparison function. The index of each item changes to reflect the new sequence.

            BOOL SortItems( PFNLVCOMPARE pfnCompare, DWORD dwData);
            Parameters
            pfnCompare
            Specifies the address of the application-defined comparison function. The comparison function is called during the sort operation each time the relative order of two list items needs to be compared. The comparison function must be either a static member of a class or a standalone function that is not a member of any class.
            dwData
            Specifies the application-defined value that is passed to the comparison function.
            Return Value

            Nonzero if it is successful; otherwise, it is zero. Remarks
            The comparison function has the following form:
            int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, ??LPARAM lParamSort);

            The comparison function must return a negative value if the first item should precede the second, a positive value if the first item should follow the second, or zero if the two items are equivalent.
            The lParam1 and lParam2 parameters specify the item data for the two items being compared. The lParamSort parameter is the same as the dwData value.

            Example


            //?Sort?the?item?in?reverse?alphabetical?order.
            static?int?CALLBACK?
            MyCompareProc(LPARAM?lParam1,?LPARAM?lParam2,?LPARAM?lParamSort)
            {
            ???
            //?lParamSort?contains?a?pointer?to?the?list?view?control.
            ???CListCtrl*?pListCtrl?=?(CListCtrl*)?lParamSort;
            ???CString????strItem1?
            =?pListCtrl->GetItemText(lParam1,?0);
            ???CString????strItem2?
            =?pListCtrl->GetItemText(lParam2,?0);

            ???
            return?strcmp(strItem2,?strItem1);
            }

            void?snip_CListCtrl_SortItems()
            {
            ???
            //?The?pointer?to?my?list?view?control.
            ???extern?CListCtrl*?pmyListCtrl;

            ???
            //?Sort?the?list?view?items?using?my?callback?procedure.
            ???pmyListCtrl->SortItems(MyCompareProc,?(LPARAM)?pmyListCtrl);
            }


            例子中的代碼是不能按照預(yù)想的工作的, 因為回調(diào)函數(shù)接收的2個參數(shù)是用SetItemData傳入的值,而不是Item的Index!
            posted on 2007-02-28 22:59 shaker(太子) 閱讀(1811) 評論(3)  編輯 收藏 引用 所屬分類: C++

            評論:
            # re: MSDN的Bug! 2007-03-01 09:07 | mzh
            “The lParam1 and lParam2 parameters specify the item data for the two items being compared.”  回復(fù)  更多評論
              
            # re: MSDN的Bug! 2007-03-01 22:49 | shaker
            @mzh
            你看函數(shù)用法雖然是這么說明的,
            但是你看例子中的用法是錯了的!  回復(fù)  更多評論
              
            # re: MSDN的Bug! 2007-06-06 08:29 | Mickey Mouse
            看來msdn也不是萬能的  回復(fù)  更多評論
              
            91精品免费久久久久久久久| 色欲av伊人久久大香线蕉影院| 久久久一本精品99久久精品88| 91麻豆精品国产91久久久久久| 亚洲国产精品无码久久SM| 亚洲精品成人久久久| 久久久久久A亚洲欧洲AV冫| 精品欧美一区二区三区久久久| 久久亚洲国产中v天仙www| 久久精品国产91久久麻豆自制| 国产精品99久久久久久人| 91精品国产91久久综合| 国内精品久久国产大陆| 国产精品久久久久一区二区三区| 久久免费视频网站| 狠狠色综合网站久久久久久久 | 一本大道加勒比久久综合| 韩国无遮挡三级久久| 久久国产精品二国产精品| 色综合久久天天综线观看| 亚洲精品美女久久久久99| 久久亚洲私人国产精品| 99久久精品国产综合一区| 久久亚洲av无码精品浪潮| 久久久久久亚洲Av无码精品专口| 97久久精品午夜一区二区| 久久久久97国产精华液好用吗| 久久久久亚洲AV无码观看 | 国产精品一久久香蕉产线看| 国产AV影片久久久久久| 日韩亚洲国产综合久久久| 亚洲国产精品无码久久久秋霞2| 天天爽天天爽天天片a久久网| 久久天天躁狠狠躁夜夜av浪潮 | 久久久久国产亚洲AV麻豆| 亚洲色婷婷综合久久| 国产精品欧美久久久久无广告 | 久久人妻少妇嫩草AV无码专区| 97久久精品午夜一区二区| 久久人人爽人人爽人人爽| 欧美精品一区二区精品久久 |