我想对CListCtrl里的某一行做高訦显示,最好是能使列表滚动到这一条处。当焦点移到别处时这一条的状态能够还原。我用SetItemStae可以高亮显示,但却一直会高亮显示,这不是我想要的。应该如何做呢??或者做这类在列表中查找后,显式显示匹配条目方面的东西要如何做呢?望指点!!谢谢

解决方案 »

  1.   

    SetItem可以改变.mask设为LVIF_STATE,state设为LVIS_SELECTED|LVIS_FOCUSED
      

  2.   

    LVITEM Item;
    m_ListCtrl.GetItem(&Item);
    Item.mask = LVIF_STATE;
    Item.state = LVIS_SELECTED|LVIS_FOCUSED;
    m_ListCtrl.SetItem(&Item);
    m_ListCtrl.Update(i);
    怎么会没有反应啊>??
      

  3.   

    设置:
    CListCtrl &m_ListCtrl = GetListCtrl();
    LVITEM Item;
    m_ListCtrl.GetItem(&Item);
    Item.mask = LVIF_STATE;
    Item.state = LVIS_SELECTED|LVIS_FOCUSED;
    Item.stateMask = LVIS_SELECTED;
    m_ListCtrl.SetItemState(1, &Item);
    清除:
    CListCtrl &m_ListCtrl = GetListCtrl();
    LVITEM Item;
    m_ListCtrl.GetItem(&Item);
    Item.mask = LVIF_STATE;
    Item.state = 0;
    Item.stateMask = LVIS_SELECTED;
    m_ListCtrl.SetItemState(1, &Item);
      

  4.   

    The full-row-select feature is enabled by setting an extended style of the list control.// MFC:
      wndYourList.SetExtendedStyle ( LVS_EX_FULLROWSELECT );// Win32 API:
      ListView_SetExtendedListViewStyle ( hwndYourList, LVS_EX_FULLROWSELECT );
      

  5.   

    you are right,I had done , i agree with you
      

  6.   

    设置扩展样式:
    LVS_EX_HEADERRDRAGDROP
    LVS_EX_TRACKSELECT当鼠标移动到一行时会高亮显视。