• MFC 记录 CListCtrl 学习使用


    1.图标模式 Icon

    2.小图标模式 Small Icon

    3.列表模式  List

    4.报表模式  Report

    这里拿Report作为例子:

    List风格以及扩展风格内容:

          LONG lStyle;  
          lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style  
          lStyle &= ~LVS_TYPEMASK; //清除显示方式位  
          lStyle |= LVS_REPORT; //设置style  
          SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style  
          DWORD dwStyle = m_list.GetExtendedStyle();  
          dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)  
          dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)  
          dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件  
          m_list.SetExtendedStyle(dwStyle); //设置扩展风格  

    首先 创建一个MFC工程->基于对话框->完成

    然后删除多余的东东, 添加一个ListCtrl->添加变量 m_ListCtrl 在程序初始化处添加初始化ListCtrl代码就可以了

        //设置选中整行,网格状态  设置ListCtrl样式  
        m_ListCtrl.SetExtendedStyle(LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); 
        //0,为标题起始位,内容,内容对齐方式,标题宽度 
        m_ListCtrl.InsertColumn(0, _T("标题1"),LVCFMT_LEFT,50); 
        m_ListCtrl.InsertColumn(1, _T("标题2"), LVCFMT_LEFT, 80);  
        m_ListCtrl.InsertColumn(2, _T("标题3"), LVCFMT_LEFT, 50);  
        m_ListCtrl.InsertColumn(3, _T("标题4"), LVCFMT_LEFT, 50);  
        m_ListCtrl.InsertColumn(4, _T("标题5"), LVCFMT_LEFT, 50);
        //添加列内容  
        m_ListCtrl.InsertItem(0, _T("5552"));//内容第一项,索引从0开始,  
        m_ListCtrl.SetItemText(0, 1, _T("小哥布林"));//第一项第二格内容,一下一次类推  
        m_ListCtrl.SetItemText(0, 2, _T("-127.5225"));  
        m_ListCtrl.SetItemText(0, 3, _T("50.551"));  
        m_ListCtrl.SetItemText(0, 4, _T("108.555"));   

    //常用ListCtrl函数
    /*
    高级列表控件ListCtrl关联的MFC中的类:CListCtrl  
    ■ 报表样式ListCtrl常用操作:  
    1、添加列标题头:InsertColumn  
    2、获取与设置列宽:GetColumnWidth、SetColumnWidth  
    3、添加一行:InsertItem、SetItemText  
    4、获取与设置单元文本:GetItemText、SetItemText  
    5、允许多行选中时,获取选中的行数:GetSelectedCount  
    6、单行选中时,获取选中的行:GetSelectionMark  
    7、选中某行:SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);  
    8、获取某行的状态是否为选中:GetItemState(n, LVIS_SELECTED) == LVIS_SELECTED  
    9、删除所有行:DeleteAllItems  
    10、删除指定列:DeleteColumn  
    11、删除指定行:DeleteItem  
    12、获取与设置列表控件的背景色:GetBkColor、SetBkColor  
    13、获取与设置文字背景色:GetTextBkColor、SetTextBkColor  
    14、获取与设置文字前景色:GetTextColor、SetTextColor  
    15、获取与设置Check:GetCheck、SetCheck  
    16、获取与设置图标列表:GetImageList、SetImageList  
    17、获取与设置行附加数据:GetItemData、SetItemData  
    18、获取与设置扩展风格样式:GetExtendedStyle、SetExtendedStyle  
    19、设置正行选中与网格线:SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);  
    20、让ListCtrl支持编辑的功能:  
    ①、将属性中的 Edit Labels 设置为 True;  
    ②、响应控件的 LVN_EDNLABELEDIT 消息,添加如下代码:  
    CString strText;  
    m_ListCtrl.GetEditControl()->GetWindowText(strText);  
    m_ListCtrl.SetItemText(pDispInfo->item.iItem, pDispInfo->item.iSubItem, strText); 
    */



  • 相关阅读:
    黑马程序员_java基础笔记(13)...类加载器和代理
    nyoj-411-Friends number
    nyoj-38-布线问题
    nyoj-233-Sort it
    nyoj-115-城市平乱
    nyoj-608-畅通工程
    nyoj-36-最长公共子序列
    nyoj-150-Train Problem I
    nyoj-494-Dancing With the Googlers
    nyoj-214-单调递增子序列(二)
  • 原文地址:https://www.cnblogs.com/callback/p/4247941.html
Copyright © 2020-2023  润新知