给你的问题再加点菜:如果CListCtrl是Report型的,那么如何才能取得当前条目中每一列的值?这人问题我也是弄了好久,不知道怎么才能取得值

解决方案 »

  1.   

    在MSDN上有详细解说
    下面就是个例子
    CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
    ASSERT(pListCtrl != NULL);POSITION pos = pList->GetFirstSelectedItemPosition();
    if (pos == NULL)
       TRACE0("No items were selected!\n");
    else
    {
       while (pos)
       {
          int nItem = pList->GetNextSelectedItem(pos);
          TRACE1("Item %d was selected!\n", nItem);
          // you could do your own processing on nItem here
       }
    }
      

  2.   

    to:nix3m() 
    msdn上的这一段我也看到了,我的例子上不是写了嘛,但是不能实现。
    to:ndy_w(王麻子):
    你说的OnSelChange()是哪个类里的函数?
      

  3.   

    这个肯定行
    afx_msg void OnItemChanged(NMHDR* pNMHDR,LRESULT* pResult)
    ON_NOTIFY(LVN_ITEMCHANGED,IDC_LIST,OnItemChanged)
    OnItemChanged(NMHDR* pNMHDR,LRESULT* pResult)
    {
    NM_LISTVIEW* nmlist=(NM_LISTVIEW*)pNMHDR;
    if(nmlist->uNewState&LVIS_SELECTED)
    {
    do the thing's you want
    }
    }
      

  4.   

    如果CListCtrl是Report型的,那么如何才能取得当前条目中每一列的值?
    在上述函数的
    if(nmlist->uNewState&LVIS_SELECTED)
    {
    int index=nmlist->iItem;
    CString str=m_list.GetItemText(index,0);  //选第index行的第0列
    }
      

  5.   

    ……
    好像都忘记LVIS_FOCUSED了
      

  6.   

    jiangsheng(蒋晟.Net) :
    能说详细点吗?
      

  7.   

    >我的目的就是想把列表框当前有焦点的条目的内容写入这个编辑框
    怎么写的是第一个选中的项目?
    ……
    用GetNextItem找到第一个有焦点的条目再说