VC 列表框问题
我想做一个列表框但是要想任务管理器里的那样同一列有多个数据没个数据所占用的空间大小可以改变就是印象名称用户明CPU等几个的位置...
我想做一个列表框 但是要想任务管理器里的那样 同一列有多个数据 没个数据所占用的空间大小可以改变 就是 印象名称 用户明 CPU 等几个的位置
展开
展开全部
使用CListCtrl即可。
然后设置为Report模式。可以从资源编辑器中,选择控件的属性,也可以在代码中进行设置。
然后InsertCloumn插入列。
然后用InsertItem插入行,这里设置的文本,是该行的第一项中显示的文本。
用SetItemText设置子项。
例如:
InsertCloumn( 0, "CPU" );
InsertCloumn( 1, "RAM" );
....
InsertItem( 0, "60" );
SetItemText( 0, 1, "128" );
然后设置为Report模式。可以从资源编辑器中,选择控件的属性,也可以在代码中进行设置。
然后InsertCloumn插入列。
然后用InsertItem插入行,这里设置的文本,是该行的第一项中显示的文本。
用SetItemText设置子项。
例如:
InsertCloumn( 0, "CPU" );
InsertCloumn( 1, "RAM" );
....
InsertItem( 0, "60" );
SetItemText( 0, 1, "128" );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最上面的那一行使用的是CHeaderCtrl,给个邮箱,我把整个工程文件发给你。
实现任务管理器的代码:
对话框头文件添加:
CHeaderCtrl* pHeaderCtrl;
对话框OnInitDialog()添加:
pHeaderCtrl = m_ListCtrl.GetHeaderCtrl();
ASSERT(NULL != pHeaderCtrl);
HDITEM hdi[5];
hdi[0].pszText=_T("映像名称");
hdi[1].pszText=_T("用户名");
hdi[2].pszText=_T("CPU");
hdi[3].pszText=_T("内存");
hdi[4].pszText=_T("描述");
for(int i = 0;i < 5;i++)
{
hdi[i].mask = HDI_TEXT | HDI_WIDTH | HDI_FORMAT ;
hdi[i].cxy = 100; // Make all columns 100 pixels wide.
hdi[i].fmt = HDF_STRING | HDF_CENTER;
pHeaderCtrl->InsertItem(i,&hdi[i]);
}
实现任务管理器的代码:
对话框头文件添加:
CHeaderCtrl* pHeaderCtrl;
对话框OnInitDialog()添加:
pHeaderCtrl = m_ListCtrl.GetHeaderCtrl();
ASSERT(NULL != pHeaderCtrl);
HDITEM hdi[5];
hdi[0].pszText=_T("映像名称");
hdi[1].pszText=_T("用户名");
hdi[2].pszText=_T("CPU");
hdi[3].pszText=_T("内存");
hdi[4].pszText=_T("描述");
for(int i = 0;i < 5;i++)
{
hdi[i].mask = HDI_TEXT | HDI_WIDTH | HDI_FORMAT ;
hdi[i].cxy = 100; // Make all columns 100 pixels wide.
hdi[i].fmt = HDF_STRING | HDF_CENTER;
pHeaderCtrl->InsertItem(i,&hdi[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以参考下下面一段代码:首先要把列表框的属性改下,style--View--Report
---------------------------------------------------
m_list.InsertColumn(0, "学号", LVCFMT_LEFT, 110);
m_list.InsertColumn(1, "姓名", LVCFMT_LEFT, 130);
m_list.InsertColumn(2, "成绩", LVCFMT_LEFT, 47);
m_list.InsertITem(0,"2002112105");
m_list.SetITemText(0,1,"程红秀");
m_list.SetITemText(0,2,"96");
m_list.InsertITem(1,"2002112126");
m_list.SetITemText(1,1,"符中辉");
m_list.SetITemText(1,2,"85");
------------------------------------------------
你可以在msdn上查查InsertConlomn 的用法,
InsertColumn
函数属于CListCrl类中的。
位于vc安装目录的vc\atlmfc\include路径下。
函数功能:在报告模式下插入一列
函数原型:int InsertColumn(int nCol, const LVCOLUMN* pColumn);
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1);
参数: nCol表示要插入列的列号。
pColumn 为新建列属性的LVCOLUMN结构的地址。
对于第二种函数重载,参数lpszcolumnHeading 为列标题的字符串的地址,所以可以使用一个字符串,比如 "姓名"。
nFormat 指定列对齐方式的整数,缺省值是左对齐。它可以为下列值之一:LVCFMT_LEFT,LVCFMT_RIGHT或LVCFMT_CENTER。
nWidth 以像素为单位的列宽。缺省值为-1,表示没有设置列宽。
nSubItem 与列相关联的子项的索引。缺省值为-1,表示没有子项与列相关。
---------------------------------------------------
m_list.InsertColumn(0, "学号", LVCFMT_LEFT, 110);
m_list.InsertColumn(1, "姓名", LVCFMT_LEFT, 130);
m_list.InsertColumn(2, "成绩", LVCFMT_LEFT, 47);
m_list.InsertITem(0,"2002112105");
m_list.SetITemText(0,1,"程红秀");
m_list.SetITemText(0,2,"96");
m_list.InsertITem(1,"2002112126");
m_list.SetITemText(1,1,"符中辉");
m_list.SetITemText(1,2,"85");
------------------------------------------------
你可以在msdn上查查InsertConlomn 的用法,
InsertColumn
函数属于CListCrl类中的。
位于vc安装目录的vc\atlmfc\include路径下。
函数功能:在报告模式下插入一列
函数原型:int InsertColumn(int nCol, const LVCOLUMN* pColumn);
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1);
参数: nCol表示要插入列的列号。
pColumn 为新建列属性的LVCOLUMN结构的地址。
对于第二种函数重载,参数lpszcolumnHeading 为列标题的字符串的地址,所以可以使用一个字符串,比如 "姓名"。
nFormat 指定列对齐方式的整数,缺省值是左对齐。它可以为下列值之一:LVCFMT_LEFT,LVCFMT_RIGHT或LVCFMT_CENTER。
nWidth 以像素为单位的列宽。缺省值为-1,表示没有设置列宽。
nSubItem 与列相关联的子项的索引。缺省值为-1,表示没有子项与列相关。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询