2015-05-29 44 views
0

每次我使用IsertColumn函數它將返回一個int變量。該變量是一列的索引。 如果我們有很多列,有沒有什麼辦法可以得到具有給定名稱的列的索引(該列的標題文本)。 謝謝獲取列的標題列(CListCtrl)的索引mfc C++

+0

如果您正在尋找調用傳遞標題列文本的方法,則該方法不存在。但是,自己寫一個應該不難。 – rrirower

+0

你能給我任何建議來寫這個函數嗎?謝謝 – user2652023

回答

1

按照您的要求,類似這應該工作的東西....

這個例子得出一個CListCtrl到在對話框中使用。

int MyListCtrl::FindColumn(const CString& ColumnText) 
    { 
    int index = -1; 
    CHeaderCtrl* pHeader = GetHeaderCtrl(); 
    if (pHeader) 
     { 
     int NumberOfColumns = pHeader->GetItemCount(); 
     for (int i = 0; i < NumberOfColumns; ++i) 
      { 
      HDITEM Item; 
      TCHAR buffer[256] = { 0 }; 
      Item.mask = HDI_TEXT; 
      Item.pszText = buffer; 
      Item.cchTextMax = 256; 
      pHeader->GetItem(i, &Item); 
      if (Item.pszText == ColumnText) 
       { 
       index = i; 
       break; 
       } 
      } 
     } 
    return index; 
    } 

調用的函數:

int index = m_llistctrl.FindColumn(_T("Value")); 

其中「值」是在標題中的實際列的文本。

1

CListCtrl::GetHeaderCtrl::GetItem(INT IPOS,HDITEM * pHeaderItem);

HDITEM :: pszText爲你想要的 - 如果我得到正確你的問題......

+0

謝謝你,你的代碼是獲得列的標題文本。我想獲得列的索引。但是沒有這樣做的功能,所以我可以用你的方式。你可以給我一個例子如何使用它。 – user2652023