不能向ClistView视图中添加文本,哪位帮小弟我看下小弟我的代码哪有有关问题啊
不能向ClistView视图中添加文本,哪位帮我看下我的代码哪有问题啊?
void CMyListView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
//这几个列名在视图上可以显示出来
GetListCtrl().InsertColumn(0,_T( "State "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(1,_T( "Capital "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(2,_T( "Area(sq.miles) "),LVCFMT_LEFT,96);
//这几个文本不能在视图上显示出来
GetListCtrl().InsertItem(0);
GetListCtrl().SetItemText(0,1, "123 ");
GetListCtrl().SetItemText(0,2, "321 ");
GetListCtrl().SetItemText(0,3, "456 ");
}
这个类是继承了CListView类而来的
麻烦帮我看下代码哪有问题,为啥文本显示不出来啊??
------解决方案--------------------
void CMyListView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
//这几个列名在视图上可以显示出来
GetListCtrl().InsertColumn(0,_T( "State "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(1,_T( "Capital "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(2,_T( "Area(sq.miles) "),LVCFMT_LEFT,96);
//这几个文本不能在视图上显示出来
GetListCtrl().InsertItem(0, "123 ");
GetListCtrl().SetItemText(0,1, "123 ");
GetListCtrl().SetItemText(0,2, "321 ");
}
换成这样就可以了! InsertItem的时候写上第一列的文字.....
------解决方案--------------------
GetListCtrl().InsertItem(0);
这样的话,调用的是
InsertItem(
const LVITEM* pItem
);
所以插入不成功。
一般最好用插入时的返回值作为下面操作的依据,这样有错误也能暴露:
int nIndex = GetListCtrl().InsertItem(0, "000 ");
GetListCtrl().SetItemText(nIndex, 1, "123 ");
GetListCtrl().SetItemText(nIndex, 2, "321 ");
比如这样,你这样调用
int nIndex = GetListCtrl().InsertItem(0);
GetListCtrl().SetItemText(nIndex, 1, "123 ");
就会出现错误了。
void CMyListView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
//这几个列名在视图上可以显示出来
GetListCtrl().InsertColumn(0,_T( "State "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(1,_T( "Capital "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(2,_T( "Area(sq.miles) "),LVCFMT_LEFT,96);
//这几个文本不能在视图上显示出来
GetListCtrl().InsertItem(0);
GetListCtrl().SetItemText(0,1, "123 ");
GetListCtrl().SetItemText(0,2, "321 ");
GetListCtrl().SetItemText(0,3, "456 ");
}
这个类是继承了CListView类而来的
麻烦帮我看下代码哪有问题,为啥文本显示不出来啊??
------解决方案--------------------
void CMyListView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
//这几个列名在视图上可以显示出来
GetListCtrl().InsertColumn(0,_T( "State "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(1,_T( "Capital "),LVCFMT_LEFT,96);
GetListCtrl().InsertColumn(2,_T( "Area(sq.miles) "),LVCFMT_LEFT,96);
//这几个文本不能在视图上显示出来
GetListCtrl().InsertItem(0, "123 ");
GetListCtrl().SetItemText(0,1, "123 ");
GetListCtrl().SetItemText(0,2, "321 ");
}
换成这样就可以了! InsertItem的时候写上第一列的文字.....
------解决方案--------------------
GetListCtrl().InsertItem(0);
这样的话,调用的是
InsertItem(
const LVITEM* pItem
);
所以插入不成功。
一般最好用插入时的返回值作为下面操作的依据,这样有错误也能暴露:
int nIndex = GetListCtrl().InsertItem(0, "000 ");
GetListCtrl().SetItemText(nIndex, 1, "123 ");
GetListCtrl().SetItemText(nIndex, 2, "321 ");
比如这样,你这样调用
int nIndex = GetListCtrl().InsertItem(0);
GetListCtrl().SetItemText(nIndex, 1, "123 ");
就会出现错误了。