列表控件添加内容不显示问题.解决给分.

海子0011 2008-10-13 12:06:43
vc对话框应用程序,我向对话框模版拖放个列表控件并关联CListCtrl m_ListCtrl;
在OnInitDialog()中初始化添加的项都能显示.
OnInitDialog()
{
...........
for(int i=0;i<n;i++)
{
m_ListCtrl.InsertItem(i,L"");
m_ListCtrl.SetItemText(i,0,RecorderNumber);
m_ListCtrl.SetItemText(i,1,RecorderCalling);
}
........
}
但在某事件响应函数中添加的项的内容为什么没显示.
(我让m_ListCtrl每增加一行,这行的颜色就会就会改变,事件响应函数被调用是,添加行的颜色改变了,但内容没显示)
void 事件响应函数名()
{
.....
number++;
m_ListCtrl.InsertItem(number,L"");
m_ListCtrl.SetItemText(number,0,RecorderNumber);
m_ListCtrl.SetItemText(number,1,RecorderCalling);
.....
}
请大虾帮下,解决给分.
...全文
233 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
datoucaicai 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 haidejintou 的回复:]
事件响应函数中:按
m_ListCtrl.InsertItem(i,RecorderNumber);
m_ListCtrl.SetItemText(i,1,RecorderCalling);
试了下,RecorderNumber显示了,但RecorderCalling仍没显示.
我跟踪了下,m_ListCtrl.SetItemText(i,1,RecorderCalling);
的确已经被执行,变量RecorderCalling也有了正确的值.
但它就是没显示.
望楼上的各位指导下.
[/Quote]

调试i正确吗?
用二楼的int number = m_ListCtrl.InsertItem(m_ListCtrl.GetItemCount(),L""); 试试
  • 打赏
  • 举报
回复
InsertColumn
部分的代码看看
海子0011 2008-10-13
  • 打赏
  • 举报
回复
事件响应函数中:按
m_ListCtrl.InsertItem(i,RecorderNumber);
m_ListCtrl.SetItemText(i,1,RecorderCalling);
试了下,RecorderNumber显示了,但RecorderCalling仍没显示.
我跟踪了下,m_ListCtrl.SetItemText(i,1,RecorderCalling);
的确已经被执行,变量RecorderCalling也有了正确的值.
但它就是没显示.
望楼上的各位指导下.
  • 打赏
  • 举报
回复

m_ListCtrl.InsertItem(i,RecorderNumber);
m_ListCtrl.SetItemText(i,1,RecorderCalling);
孤客天涯 2008-10-13
  • 打赏
  • 举报
回复
最好是这样
int number = m_ListCtrl.InsertItem(m_ListCtrl.GetItemCount(),L"");
m_ListCtrl.SetItemText(number,0,RecorderNumber);
m_ListCtrl.SetItemText(number,1,RecorderCalling);
  • 打赏
  • 举报
回复
m_ListCtrl.InsertItem(i,L"");
m_ListCtrl.SetItemText(i,0,RecorderNumber);
这2个貌似重复了。。。
海子0011 2008-10-13
  • 打赏
  • 举报
回复
解决了,谢谢各位.
2楼的正解.
自己该死.
给分.
海子0011 2008-10-13
  • 打赏
  • 举报
回复
是在响应什么消息时添加新项的?
一个Activex控件的事件中,添加的.
cnzdgs 2008-10-13
  • 打赏
  • 举报
回复
是在响应什么消息时添加新项的?
海子0011 2008-10-13
  • 打赏
  • 举报
回复
我已经使用Report样式了.
请楼上的各位再帮我看看,那里有问题.
海子0011 2008-10-13
  • 打赏
  • 举报
回复
2楼的方法试过了,还是老问题.
m_ListCtrl.DeleteAllItems();
m_ListCtrl.ModifyStyle(0L,LVS_REPORT);
m_ListCtrl.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE);
m_ListCtrl.InsertColumn(0,L"编号",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(1,L"主叫",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(2,L"被叫",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(3,L"日期",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(4,L"时间",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(5,L"时长",LVCFMT_LEFT,150);
m_ListCtrl.InsertColumn(6,L"备注",LVCFMT_LEFT,150);
这是我的头部分.
zqh886 2008-10-13
  • 打赏
  • 举报
回复
把CListCtrl 控件的样式改为Report类型看看
cnzdgs 2008-10-13
  • 打赏
  • 举报
回复
这样试过了吗?
[Quote=引用 2 楼 jason_wentzel 的回复:]
最好是这样
int number = m_ListCtrl.InsertItem(m_ListCtrl.GetItemCount(),L"");
m_ListCtrl.SetItemText(number,0,RecorderNumber);
m_ListCtrl.SetItemText(number,1,RecorderCalling);
[/Quote]

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧