在CListCtrl中,怎么获得鼠标选择了哪一行?非常感谢。

解决方案 »

  1.   

    处理HDN_ITEMCLICK消息,这个消息带一个参数NMHDR *pNMHDR
    LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
    phde里面就包含了当前的item的信息。
      

  2.   

    添加LVN_ITEMCHANGED消息处理,用Wizard
    在OnItemchangedList1()
    {
    int nItem = m_lst.GetNextItem(-1, LVNI_FOCUSED | LVIS_SELECTED);
    if (nItem < 0)
    {
    *pResult = 0;
    return;
    }}
      

  3.   

    响应NM_CLICK消息,添加如下代码
    int nSelRows = m_RealtimeWatchList2.GetSelectedCount();
    if(!nSelRows) //-- If there are no rows selected,jump out here
    return;
    POSITION pos =m_RealtimeWatchList2.GetFirstSelectedItemPosition();
    //-- Get the index of next selected row
    m_select = m_RealtimeWatchList2.GetNextSelectedItem(pos);
    TRACE("First Item %d\n", m_select);

    while (m_select != -1) //-- Execute this loop as long as GetNextSelectedItem() returns -1
    {
    m_select = m_RealtimeWatchList2.GetNextSelectedItem(pos); //-- Get the index of the next selected row
    TRACE("Next Item %d\n",m_select);
    }
    return;
    *pResult = 0;