首先保证有多选属性
SetItemState

解决方案 »

  1.   

    m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|//高亮显示选中的项目
    LVS_EX_GRIDLINES|//显示网格线。
    LVS_EX_ONECLICKACTIVATE );//当鼠标移动到项目上面时高亮显示,但是并不是被选中
      

  2.   

    SetExtendedStyle(LVS_EX_FULLROWSELECT);
      

  3.   

    你可能没有选Show selection always属性。
      

  4.   

    njg_jh(糨糊):
    他的方法是可以的!我的设置方法如下:(其实本质是一样的)
             DWORD dwlstOperationStyle = GetWindowLong(m_lstOperation.m_hWnd, GWL_STYLE); 
             dwlstOperationStyle &= ~(LVS_TYPEMASK);
             SetWindowLong ( m_lstOperation.m_hWnd , GWL_STYLE , dwlstOperationStyle | LVS_REPORT );
             DWORD OperationStyles = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES  ; //| LVS_EX_HEADERDRAGDROP ;  //此处不允许列头被拖拽
             m_lstOperation.SetExtendedStyle( OperationStyles );呵呵,高亮消失是别的原因,比如焦点的问题。我的解决方法是
    再增加一个响应就可以了!
    如下,为你的 ListCtrl增加一个OnClick事件(利用ClassWizard或者消息响应等方法)://点击 ListView字段表 事件响应
    //设置字段表 列表热点
    void CDataBaseToolDlg::OnlstOperationClick(NMHDR* pNMHDR, LRESULT* pResult) 
    {
             LPNMITEMACTIVATE lpnmitem = (LPNMITEMACTIVATE) pNMHDR;         long nItem=lpnmitem->iItem;
             if(nItem!=-1)
    {
                      m_lstOperation.SetHotItem(nItem);
    }
             *pResult = 0;
    }
      

  5.   

    对于Show selection always属性和设置热点的区别:我个人认为 设置热点比较好:
    因为仅设置Show selection always属性,将会在控件失去焦点时使所选择项的高亮颜色(如果未修改,应该是蓝色)变成灰色,并且会在点击控件空白行时失去高亮,这些也许是
    用户不愿意看到的。而设置热点不存在上面的限制,不论什么时候,所选择的项都是蓝色的,很醒目。
      

  6.   

    我试了一下,当我把焦点从ListCtrl移到一个Edit中时,原来高亮显示的项也会变成灰色;但先点击一下ListCtrl中的空白区,然后再把焦点移到一个Edit中时会保持高亮显示,请tpProgramer说详细一点儿,如何解决我刚说的情况啊