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);

你可能感兴趣的:(mfc,mfc)