Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1659273
  • 博文数量: 230
  • 博客积分: 10045
  • 博客等级: 上将
  • 技术积分: 3357
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-30 20:40
文章分类

全部博文(230)

文章存档

2011年(7)

2010年(35)

2009年(62)

2008年(126)

我的朋友

分类: C/C++

2008-12-09 20:26:29

这两天因为list control的问题耽误了不少时间。
主要原因是单线程没问题,多线程的时候就出现某些插入的行内容不显示,实际是setitemtext执行失败。
按照MSDN的例子是没啥问题可查的,但到codeguru上搜索了一番后,才明白,listcontrol的函数不是这样用的。

setitemtext的第一个参数应该是insertitem的返回值,如果不这样做就会在某些情况下出现未知的异常(如没有显示)。

我怀疑MSDN中的这段代码没有经过完全的测试,或者说仅仅是为了说明如何调用接口函数,而不是正确调用。

讲的比较清楚的可以参考如下:
http://discuss.itacumens.com/index.php?topic=27458

正确的使用insertitem和setitemtext的方法应该是
The InsertItem functions returns an index, which can be used to call other functions to operate on the row.
 int nIndex = m_ListVw.InsertItem(0,"Item1");
 m_ListVw.SetItemText(nIndex,1,"Item12");
 m_ListVw.SetItemText(nIndex,2,"Item12");

阅读(1640) | 评论(4) | 转发(0) |
0

上一篇:geturl

下一篇:懒人工具组合

给主人留下些什么吧!~~

chinaunix网友2011-01-03 13:07:47

多谢LZ提醒,LZ好人啊!!!

chinaunix网友2010-05-29 17:35:15

就是这个错误从昨天一直困扰我,多谢LZ提醒,LZ好人啊!!!

chinaunix网友2009-10-10 14:44:47

3q

chinaunix网友2009-05-14 09:22:16

我也遇到了相同的问题哇,谢谢Lz的提醒 看来msdn中的例子真的不能都信