每次使用IsertColumn函数时,它都会返回一个int变量。该变量是列的索引。 如果我们有很多列,有没有办法获得具有给定名称的列的索引(该列的标题文本)。 谢谢
答案 0 :(得分:1)
CListCtrl :: GetHeaderCtrl :: GetItem(int iPos,HDITEM * pHeaderItem); < / p>
HDITEM :: pszText就是你想要的 - 如果我正确地得到了你的问题......
答案 1 :(得分: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"));
其中&#34;价值&#34;是标题中实际列的文本。