精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
A+VC全-董家庄 10:42:22
就是ListControl吗,只有它。
A+VC全-董家庄 10:42:32
里面带颜色的
编程慧助 10:45:39
对
编程慧助 10:45:41
发截图
A+VC全-董家庄 10:46:22
注1、ListControl的命名是“list view control”,它可以包含多个带有文本和图标的项。在MFC里,这个界面对应类CListCtrl。
注2、要想掌握CListCtrl,要先掌握CListBox。Box是盒子的意思,Box级别要比Ctrl简单,所以Box容易掌握。CListBox可以包含多行文本,不能包含图标。多行文本为目标,就要掌握增删改查基本技能,这些都有对应的处理函数,比如添加是用AddString,它添加到尾部。如果想添加到某个项之后,要用InsertString,比如m_myListBox.InsertString(2, str);则表示添加到第2行,原来的第2行变成第3行。
注3、CListBox的项是一个字符串,而CListCtrl的目标就是一个Item了,Item象个结构体,结构体有多个成员,则界面上就要有多个列。用列的模式时,CListCtrl的模式要修改为detail模式。从一个字符串,到一个结构体,变化比较大,掌握有难度。
注4、CListCtrl里添加一个Item,用InsertItem,InsertItem函数的最简单形式是:int InsertItem( int nItem, LPCTSTR lpszItem );第一个参数是行号,第二个参数是Item的名称。行号按自然顺序增加,比如0,1,2,3,4,这样。Item的名称会显示到第一列里。对其它列设置值用SetItemText函数。示例如下:
CString strText;
int nColumnCount = m_myListCtrl.GetHeaderCtrl()->GetItemCount(); //得到列个数
// Insert 10 items in the list view control. 添加10项
for (int i = 0; i < 10; i++)
{
strText.Format(TEXT("item %d"), i); //用循环变量生成名称
// Insert the item, select every other item.添加项,隔行选中
m_myListCtrl.InsertItem(LVIF_TEXT | LVIF_STATE, i, strText, (i % 2) == 0 ? LVIS_SELECTED : 0, LVIS_SELECTED, 0, 0);
// Initialize the text of the subitems.初始化子项(子列)内的文本
for (int j = 1; j < nColumnCount; j++)
{
strText.Format(TEXT("sub-item %d %d"), i, j);
m_myListCtrl.SetItemText(i, j, strText);
}
}