我想达到的效果是:
在report样式的list control中
用鼠标点取一行的任意一子项,就可以让用户看起来像把这一行选定一样(反色)。
怎么做呢?

解决方案 »

  1.   

    pmyListCtrl->SetExtendedStyle
       (pmyListCtrl->GetExtendedStyle()|LVS_EX_FULLROWSELECT);
      

  2.   

    m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
      

  3.   

    要设定ListCtrl的整行选择模式
    m_list.SetExtendedStyle(m_list.GetExtendedStyle() |LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
      

  4.   

    ListView_SetExtendedListViewStyle(GetListCtrl(), LVS_EX_FULLROWSELECT);
      

  5.   

    //以下代码实现鼠标点击时选中的是一整行
    m_ListCtrl.ModifyStyleEx(0, WS_EX_STATICEDGE);
    AddExStyle (LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_REPORT);
    DWORD dwStyle = ::SendMessage (m_ListCtrl.m_hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
    dwStyle |= (LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_REPORT);
    ::SendMessage (m_ListCtrl.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle);//以下代码实现让程序明白鼠标选中的是哪一行
    POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition(); 
    if(pos==NULL) return;
    index=m_ListCtrl.GetNextSelectedItem(pos);
    //整数index就是选中的行号