共用方式為


CComboBox::CompareItem

呼叫由架構判斷新項目的相對位置 (排序的主控描繪下拉式方塊的清單方塊部分。

virtual int CompareItem(
   LPCOMPAREITEMSTRUCT lpCompareItemStruct 
);

參數

傳回值

表示 COMPAREITEMSTRUCT 結構描述的兩個項目的相對位置。它可以是下列其中一個值:

意義

– 1

在項目 2. 之前的項目 1 排序。

0

項目 1 和 2 項目排序相同。

1

在項目 2. 之後的項目 1 排序。

提供 COMPAREITEMSTRUCT的說明請參閱 CWnd::OnCompareItem

備註

根據預設,此成員函式不會執行任何動作。如果您建立了 LBS_SORT 樣式建立主控描繪下拉式方塊,您必須覆寫此成員函式以協助排序新項目的框架加入至清單方塊。

範例

// CMyComboBox is my owner-drawn combo box derived from CComboBox. This 
// example compares two items using strcmp to sort items in reverse 
// alphabetical order. The combo box control was created with the 
// following code:
//   pmyComboBox->Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      CBS_SORT|CBS_OWNERDRAWVARIABLE,
//      myRect, pParentWnd, 1);
//
int CMyComboBox::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct)
{
   int iComp = 0;
   ASSERT(lpCompareItemStruct->CtlType == ODT_COMBOBOX);
   LPCTSTR lpszText1 = (LPCTSTR) lpCompareItemStruct->itemData1;
   ASSERT(lpszText1 != NULL);
   LPCTSTR lpszText2 = (LPCTSTR) lpCompareItemStruct->itemData2;
   ASSERT(lpszText2 != NULL);

   if (NULL != lpszText1 && NULL != lpszText2)
   {
      iComp = _tcscmp(lpszText2, lpszText1);    
   }

   return iComp;
}

需求

Header: afxwin.h

請參閱

參考

CComboBox 類別

階層架構圖

WM_COMPAREITEM

CComboBox::DrawItem

CComboBox::MeasureItem

CComboBox::DeleteItem