zoukankan      html  css  js  c++  java
  • 如何让ListCtrl的CheckBox只有一个处于选中状态

    1、
        要让ListCtrl的每一行的第一列为CheckBox,需要做如下设置:
      listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle()|LVS_EX_CHECKBOXES); 

    2、 
     为了限制ListCtrl只能有一行的CheckBox处于选中状态,则需要:
     响应ListCtrl的 LVN_ITEMCHANGED 消息:
     例如:
     ON_NOTIFY(LVN_ITEMCHANGED, IDC_LC_CONFIG, OnLvnItemchangedLcConfig)

    void CRestorePage::OnLvnItemchangedLcConfig(NMHDR *pNMHDR, LRESULT *pResult)
    {
     LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
     // TODO: 在此添加控件通知处理程序代码  
     if(m_LcConfig.GetCheck(pNMLV->iItem))  
      UnCheckOtherItem(m_LcConfig, pNMLV->iItem);
     *pResult = 0;
    }

    其中UnCheckOtherItem(...)的代码如下
    void CRestorePage::UnCheckOtherItem(CListCtrl& listCtrl, int index)
    {
     for (int i=0;i<listCtrl.GetItemCount();++i)
     {
      if(i == index)
       continue;
      listCtrl.SetCheck(i,FALSE);
     }
    }

  • 相关阅读:
    如何用消息系统避免分布式事务?
    jvm调休,监控
    ClassLoader原理
    JVM结构、GC工作机制详解
    单链表倒置
    hashSet
    HashMap
    hashcode
    深入理解HTTP协议、HTTP协议原理分析
    HTTP协议(详解一)
  • 原文地址:https://www.cnblogs.com/strinkbug/p/1027332.html
Copyright © 2011-2022 走看看