我用CListctrl 显示了两列内容,用finditem来查找。可以完成第一列数据的查找,可是我现在想按照第二列数据进行查找 请问该怎么做呢?
我按照第一列内容查找的代码是这样写的
LVFINDINFO info;
int nIndex;
info.flags = LVFI_PARTIAL|LVFI_STRING;
info.psz = strKey(查找的内容);
if ((nIndex = m_list.FindItem(&info)) != -1){
m_list.SetItemState(nIndex,  LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED);
m_list.EnsureVisible(nIndex, FALSE);

解决方案 »

  1.   

    用GetItemText(nItem, nSubItem)吧。
      

  2.   

    用个循环逐个GetItemText来比较。
      

  3.   

    能不能在说的详细点FindItem函数不能指定我查询的是哪一列啊。
    这个getitemtext在这里应该怎么用呢
      

  4.   

    我要做的是查找,比如strkey是我要查找的对象,我需要根据这个内容在listctrl里面查找,然后选中strkey所在的行。
    可是我用finditem都是按照strkey在第一列的位置进行查找的,我现在需要完成按照第二列的内容在Listctrl里面查找strkey.
    大虾们给指导一下吧 
      

  5.   

    int n = m_list.GetItemCount();
    for (int i=0; i<n; i++)
    {
    CString text = m_list.GetItemText(i, 1);
    if (text.Compare(_T("strkey")) == 0)
    {
    m_list.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);
    break;
    }
    }