2007-05-31 21:32 335人阅读 评论(0) 收藏 举报
CListCtrl报表格式中,每行的第一列称为主项,其它列称为子项
1、向对话框中拖动一个CListCtrl控件,修改其ID,将View属性修改为Report(报表);
2、为CListCtrl增加变量;
//
//用Classwazrd设置CListCtrl变量m_CListCtrl
//
3、在InitDialog函数中初始化CListCtrl,需要设置CListCtrl的Style。
m_CListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);//整行选择,代表以后选择该列表框时一次选择一行;
///*
m_CListCtrl.SetExtendedStyle (LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);
其中LVS_EX_FULLROWSELECT 就是前面说得整行选中
LVS_EX_GRIDLINES 网格线(只适用与report风格的listctrl)
LVS_EX_CHECKBOXES 前面加个checkbox
*/
//
4、插入列头;
m_CListCtrl.InsertColumn(0,"属性名",0,80);
m_CListCtrl.InsertColumn(1,"类型",0,80);
m_CListCtrl.InsertColumn(2,"描述",0,100);
InsertColumn (0,”XX”,0,80) 函数中其中”XX”参数为CString型,80参数表示插入列的宽度,//第一个0表示从右到左编辑框默认的列数;
//
5、在对话框中增加按钮,并添加命令响应函数来向CListCtrl中增加数据;
void CTestScrollBarDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
int nItem = m_CListCtrl.GetItemCount();
//增加一行
m_CListCtrl.InsertItem(nItem,"");
//填充CListCtrl
m_CListCtrl.SetItemText(nItem,0,"ID");
m_CListCtrl.SetItemText(nItem,1,"int");
m_CListCtrl.SetItemText(nItem,2,"User ID");
}
//
//int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );
第一个参数是插入的第几项,从零开始,比如从第一项插入,此参数为零,最末一项则是 (nMaxCount - 1).该项为主项。
第二个是插入项的文本显示。
第三项是该项对应的图标索引。应用此参数要先设置SetImageList来设置图标链表。
该函数的作用,是在控制列表里增加一行,并可以在这行显示数据,显示内容由第二个参数LPCTSTR lpszItem提供。
增加的行是向下依次增加的
当加入下面代码时:
int nItem = m_CListCtrl.GetItemCount();
m_CListCtrl.InsertItem(nItem,"");
在当前列表状态下,在最顶行向上插入一行;
//
//
//SetItemText(nItem,2,"User ID");
第一个参数nItem表示第几行,是行号。
第二个参数是列号,在该控制列表初始化中,定义了几列就几列,该参数用来选择定义的任意一列。
第三个参数表示显示的数据,是字符串型。显示的行列位置由前面两个参数决定。
该函数必须配合InsertItem()函数使用,单独使用无法显示数据。
例如,在第0行第1列显示字母a,代码为:
m_CListCtrl.InsertItem(0,"");
m_CListCtrl.SetItemText(0,1,"a");
//