zoukankan      html  css  js  c++  java
  • CListCtrl设置选中行


    原文链接: http://blog.163.com/lejianz@126/blog/static/11650292013610103232600/

    CListCtrl 设置选中状态

    1. 使用CListCtrl的函数SetItemState(int nItem, UINT nState, UINT nMask);

    如:
    m_list.SetItemState(index,LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED); //设置行index为选中并高亮(如果未设置Focuse,被选中行会变为灰色)
    state 字段就是设置item 的状态。 stateMask是设置影响到的状态。
    这样要修改 item 状态,就不需要先获取每个状态值,只需要在 stateMask 中指定要修改的某个或者某几个状态即可。
    例如这里要修改LVIS_SELECTED状态,只需要将 item 的 state 和 stateMask 都设置为LVIS_SELECTED ,
    如果stateMask没有LVIS_SELECTED,则state中的LVIS_SELECTED也不生效。

    2. 另外,要使被选中行高亮显示,除了将item 的 state 和 stateMask 都设置LVNI_FOCUSED之外,还要将List Control控件的Always show selection属性设置为TRUE(默认为FALSE,也就是说当前选择的 item 在控件非激活状态下是不显示选中行的)。

    3. 经过以上修改,在打开对话框之后,指定item在List Control控件中显示为选中状态,但是背景色是灰色,因为打开的对话框焦点不在List Control控件上,
    因此需要在对话框类的OnInitDialog()中加一句m_list.SetFocus(),同时将return TRUE改为return FALSE来指示窗口不按照Tab顺序来指定焦点。

     

     

  • 相关阅读:
    【C++札记】友元
    【C++札记】const关键字
    【C++札记】实现C++的string类
    【C++札记】拷贝构造函数,浅拷贝和深拷贝
    【C++札记】内联函数
    【C++札记】函数重载
    文章博客导航
    【C++札记】标准输入与输出
    毕业季,学子们又把翟天临推上了热搜!
    【底层原理】高级开发必须懂的"字节对齐"
  • 原文地址:https://www.cnblogs.com/huhu0013/p/4709974.html
Copyright © 2011-2022 走看看