zoukankan      html  css  js  c++  java
  • MFC之列表控件CListCtrl

    • CListCtrl 获取选中的某一行

    POSITION ps = m_list.GetFirstSelectedItemPosition();
    int nSel = m_list.GetNextSelectedItem(ps);//选中的哪行的索引(based 0)
    
    //
    if(m_list.GetSelectedCount() <1)
      return;
    int nSel = m_list.GetSelectionMark();
    • CListCtrl控件失去焦点时仍保持高亮

    1. 头文件中添加变量m_nSelItem

    int m_nSelItem;

    2. 为ListCtrl控件添加NM_KILLFOCUS(失去焦点)和NM_SETFOCUS(得到焦点)消息

    手动添加代码如下:

    头文件中添加声明
        afx_msg void OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult);
        afx_msg void OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult);

    源文件中添加映射

        ON_NOTIFY(NM_KILLFOCUS, IDC_LISTCTRL, OnNMKillfocusList)
        ON_NOTIFY(NM_SETFOCUS, IDC_LISTCTRL, OnNMSetfocusList)

    源文件中添加函数

    void CPageListView::OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult)
    {
        // TODO: 在此添加控件通知处理程序代码
        m_nSelItem = m_ListCtrl.GetSelectionMark();
        m_ListCtrl.SetItemState(m_nSelItem, LVIS_DROPHILITED, LVIS_DROPHILITED);

        *pResult = 0;
    }

    void CPageListView::OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult)
    {
        // TODO: 在此添加控件通知处理程序代码
        m_ListCtrl.SetItemState(m_nSelItem, FALSE, LVIF_STATE);

        *pResult = 0;
    }

    注意:Always Show Selection属性一定要设为FALSE


    ————————————————
    原文链接:https://blog.csdn.net/guoxiaobo2010/article/details/21730955

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    正则匹配中 ^ $ 和  的区别
    jQuery 选择同时包含两个class的元素的实现方法
    JSON—去除JSON数据中的所有HTML标…
    HTML5 自定义属性 data-*属性名一定要小写吗?
    Java线程池(ExecutorService)使用
    ExecutorService中submit和execute的区别
    启用Microsoft loopback Adapte
    【Spring】如何配置多个applicationContext.xml文件
    C#编程之AES加密(一)
    C#编程之利用C#创建dll并调用(三)
  • 原文地址:https://www.cnblogs.com/htj10/p/11705231.html
Copyright © 2011-2022 走看看