您的位置:首页 > 其它

关于 CComboBox::GetItemData返回值为0 的修正

2014-03-17 16:53 369 查看
今天在网上看到一篇关于VC


CComboBox::GetItemData返回值为0

的文章,原文链接为:

http://blog.sina.com.cn/s/blog_4b678e5b0100br0b.html

内容如下:

vc使用起来果然很疯狂。
在使用该方法时,返回值一直为0;试了很多办法,都没有奏效,其中包括重装了vc。
后来终于对了,原因却还是不太清楚。
之前出错的代码;
int curIndex = m_comb_selLayer.AddString(chAryFileName);
//记住被选择图层在工程中的位置
curCount = m_comb_selLayer.GetCount();
m_comb_selLayer.SetItemData(curCount-1,i);
最终正确了的代码
int curIndex = m_comb_selLayer.AddString(chAryFileName);
//记住被选择图层在工程中的位置
curCount = m_comb_selLayer.GetCount();
m_comb_selLayer.SetItemData(curCount-2,i);
发现在set的时候,index设置的是比curcount要小2,而不是1.
但别的地方用到的index包括都是小1的,比如setcursel时,只需要减去1.


经验证出现这样的情况并非为SetItemData参数与别的方法不一样,而是CComboBox 控件sort 属性默认为true,这样就会自动进行排序造成SettemData 不正常,以将sort 改成false后正常..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: