MFC ListCtrl控件的使用方法

1.创建ListCtrl控件的方法


1.在对话框中拖入控件


Image

上图中最后一个List Control就是我们要找的控件


2.动态创建控件


        在对话框类的OnInitDialog函数中加入以下代码:

CListCtrl* plist =new CListCtrl();
plist->Create(WS_CHILD | WS_VISIBLE,CRect(l, t, r, b), this, nid);

注:l为控件矩形的左边,t为控件矩形的上边,r为控件矩形的右边,b为控件矩形的下边,nid为控件的ID

WS_CHILD表示为子控件,WS_VISIBLE表示此控件可见


2.设置ListCtrl控件的样式


1.在资源视图中修改控件属性


Image

        修改ListCtrl的View属性可以修改控件的样式,Single Selection用于指定是否一次只能选择一行。ListCtrl控件的样式一共有四种:Icon、Small Icon、List、Report。以下是四种样式的示例:

Icon

Image

Small Icon

Image

List

Image

Report

Image


后续介绍的内容将以Report样式为例进行介绍。


2.动态修改样式属性


在OnInitDialog函数中加入以下代码

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


3.设置拓展样式


这个操作并不能直接在资源视图中进行修改,但是我们可以在OnInitDialog函数中初始化控件的拓展样式。

DWORD dwStyle = m_list.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT; //选中某行使整行高亮(只适用与Report)
dwStyle |= LVS_EX_GRIDLINES; //网格线(只适用与Report,用于产生网格线)
m_list.SetExtendedStyle(dwStyle); //设置扩展风格


3.初始化ListCtrl控件


1.插入列

m_list.InsertColumn(0,"1",0,100);

插入一个列,此列的index为0,列名为1,宽度为100px

该函数第一个参数为列index,第二个参数为列名字符串,第三个参数为格式,一般设为0,第四个参数为列宽度。

2.插入空行

m_list.InsertItem(0,"");

插入一个空行,改行的index为0

该函数第一个参数为行index,第二个参数任意即可

3.设置每行的每一列的文本

m_list.SetItemText(0,0,"1");

设置index为0的行的index为0的列的文本为字符串1

该函数第一个参数表示行index,第二个参数表示列index,第三个参数表示要设置的文本。

4.删除行

m_list.DeleteItem(0);

删除行index为0的行

5.获取选中行

POSITION pos = m_list.GetFirstSelectedItemPosition();
if (pos == NULL)
{
//没有任何行选中
}
else
{
    while (pos)
    {
          int nItem = m_list.GetNextSelectedItem(pos);
          // nItem 为行index
    }
}

6.清空所有行

m_list.DeleteAllItems();

版权所有:《mntm博客》 => 《MFC ListCtrl控件的使用方法
本文地址:http://www.mntm520.com/post/20
除非注明,文章均为 《mntm博客》 原创,欢迎转载!转载请注明本文地址,谢谢。

暧昧贴

发表评论

    微笑 大笑 拽 大哭 奸笑 流汗 喷血 生气 囧 不爽 晕 示爱 卖萌 吃惊 迷离 爱你 吓死了 呵呵