1.如何限制用户只能选中一个item.
  如何添加属性LVS_SINGLESEL ,是不是要改写CListCtrl::Create(),而其中几个参数又该如何呢2.如何双击一个item就能触发OnButton事件.
3.程序如何得知item被选中,哪个函数.

解决方案 »

  1.   

    在PreCreateWindow()中改变:cs.style |= LVS_SINGLESEL;
    如果是控件,可以用SetWindowLong()。
      

  2.   

    2.
             头文件中afx_msg void OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult);
             cpp中
    ON_NOTIFY(NM_DBLCLK, IDC_TREE, OnDblclkTree)//写在消息映射的对应位置
             ...::OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    // TODO: Add your control notification handler code here
    OnButton();
    *pResult = 0;
    }
      

  3.   

    ft,上面错了。List应该是
    afx_msg void OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult);
    ON_NOTIFY(NM_DBLCLK, IDC_MyLIST, OnDblclkList)
    void CMyxx::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    // TODO: Add your control notification handler code here
    OnButton();
    *pResult = 0;
    }
      

  4.   

    3.在你的函数中做判断
     for(int i=0;i<m_List.GetItemCount();i++)
    {
    if(m_List.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
    break;
    }
     if (i=m_List.GetItemCount())
      //没有被选中
      else
       i就是第几个被选中
      

  5.   

    1.cs.style |= LVS_SINGLESEL;
     aa.Create();2.3.POSITION pos = m_fileList.GetFirstSelectedItemPosition();
    int nItem = m_fileList.GetNextSelectedItem(pos);
    nItem为选中的位置.