• CListCtrl 使用


    [设置属性]

    首先用资源编辑器拖放一个ListCtrl控件到对话框中。
    设置属性。
    Always Show Selection: True // 即便失去焦点依然高亮选择
    SingleSelection: True   // 只允许选中一行
    View: Report            // 报表方式,较常用


    [初始化]
    // 在对话框的OnInitialDialog中初始化ListCtrl
    // 1. 设置样式
    m_ListCtrl.SetExtendedStyle( LVS_EX_FULLROWSELECT );
    // LVS_EX_FULLROWSELECT: 表示选中整行,而非某一列
    // LVS_EX_GRIDLINES: 显示网格线
    // LVS_EX_CHECKBOXES: 第一列前面显示复选框
    // LVS_EX_FLATSB: 比较平的滚动条

    // 2. 插入列
    m_ListCtrl.InsertColumn( 0, _T("列标题0"), LVCFMT_LEFT, 100 ); 
    m_ListCtrl.InsertColumn( 1, _T("列标题1"), LVCFMT_LEFT, 100 );

    // LVCFMT_LEFT表示列左对齐,还可以取LVCFMT_RIGHT,LVCFMT_CENTER
    // 100为列宽

    // 3. 插入行
    // 可以在初始化时插入行,也可以动态插入行

    m_ListCtrl.InsertItem( 0, _T("0 行 0 列") );
    m_ListCtrl.SetItemText( 0, 1, _T("0 行 1 列") );
    m_ListCtrl.InsertItem( 1, _T("1 行 0 列") );
    m_ListCtrl.SetItemText( 1, 1, _T("0 行 1 列") );


    [遍历所选]
    POSITION selectItemPos = m_ListCtrl.GetFirstSelectedItemPosition();
     while ( selectItemPos != NULL ) {
      const int selectItemIndex = m_ListCtrl.GetNextSelectedItem( selectItemPos );  
      CString keyString = m_ListCtrl.GetItemText( selectItemIndex,  0 );
     //  selectItemIndex是基于0的索引
     }


    [删除所选]
    POSITION selectItemPos = m_ListCtrl.GetFirstSelectedItemPosition();
     int offset = 0;
     while ( selectItemPos != NULL ) {
      const int selectItemIndex = m_ListCtrl.GetNextSelectedItem( selectItemPos );
      m_ListCtrl.DeleteItem( selectItemIndex - offset );
      ++offset;
     }

  • 相关阅读:
    Oracle 安装安全补丁过程中出现的问题
    Oracle 设置日志模式
    Oracle 设置archivelog错误解决方案
    sum() over() 函数的使用
    C盘清理,移动node 依赖和缓存文件
    ol设置最佳可视范围和限制缩放
    flex弹性布局模式下文字超出显示省略号
    查看svn本地账户和密码
    flutter apk启动闪退问题
    More than one file was found with OS independent path 'lib/armeabi-v7a/libflutter.so'
  • 原文地址:https://www.cnblogs.com/hbf369/p/2281541.html
Copyright © 2020-2023  润新知