MFC中ListCtrl使用说明

ListCtrl在MFC的对话框中经常会使用,下面讲解ListCtrl的一些使用方法,仅供参考。

假设m_list用来表示一个CListCtrl的类对象,并且把ListCtrl设置为Report形式。

1)  设置风格

Report方式下几个扩展风格

 LVS_EX_FULLROWSELECT  选择整行

 LVS_EX_GRIDLINES       行与行之间有分割线

 LVS_EX_INFOTIP         子item字符显示不下时自动出现tooltip

 LVS_EX_CHECKBOXES     前面加上CheckBox单选框

设置全行选择,网格线的实例:

DWORD dwStyle =m_list.GetExtendedStyle();

dwStyle |=LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格)

dwStyle |= LVS_EX_GRIDLINES;       //网格线(只适用与report风格)

dwStyle |=LVS_EX_CHECKBOXES;  //item前生成CheckBox控件

m_list.SetExtendedStyle(dwStyle);//设置扩展风格

         如果设置LVS_EX_CHECKBOXES时,使用BOOLGetCheck(int nItem) const;函数检查某行是否Checked,或者使用m_list.GetItemState(nItem, LVIS_SELECTED)函数。

         设置LVS_SHOWSELALWAYS选项,它会一直选中某个Item。

2)  插入数据

// 插入列的头部信息

m_list.InsertColumn(0, “文件名”, LVCFMT_LEFT);

// 调整列宽

m_list.SetColumnWidth(0, 100);

m_list.InsertColumn(1, “设备类型”, LVCFMT_CENTER,100);

m_list.InsertColumn(2, “项目名称”, LVCFMT_CENTER,100);

 

// 插入数据

int index = m_list.GetItemCount();

m_list.InsertItem(index, “File Name”);

m_list.SetItemText(index, 1, “Device Type”);

m_list.SetItemText(index, 2, “Project Name”);

 

3)  删除所有数据

// 删除列的头部,注意需要从后往前删除,否则会出错

for (int index = m_list.GetItemCount(); index >= 0;index++) {

           m_list.DeleteColumn(index);

}

// 删除所有的列表项

m_list.DeleteAllItems();

选中或者取消选中行

int index = 0;

// 选中Index所在行

m_list.SetItemState(index,LVIS_SELECTED | LVIS_FOCUSED,LVIS_SELECTED | LVIS_FOCUSED);

//取消选中

m_list.SetItemState(index, 0, LVIS_SELECTED | LVIS_FOCUSED);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值