WTL CListViewCtrl getSelectedItem导致我的断言失败
WTL CListViewCtrl getSelectedItem is causing an Assertion fail for me
这是我的代码,用于获取在CListViewCtrl:中选择的项目的名称
LVITEM item = { LVIF_PARAM };
CString itemText;
clistViewCtrl.GetSelectedItem(&item);
clistViewCtrl.GetItemText(item.iItem, item.iSubItem, itemText);
请注意,此代码正在工作。我最近做了另一个项目,我用这种方式获取了这个名字,然而,我没有遇到任何断言失败的问题。
当我在当前项目中执行此操作时,我总是得到一个调试断言:
"File: ... atlctrls.h"
Line: 3242
Expression: (GetStyle() & 0x0004) != 0
尽管表达式已经说明了这一点,但以下是导致失败的原因:
ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
我几乎不知道问题出在哪里。正如我所说,完全相同的代码在我的另一个项目中起作用,我只是仔细研究了两者,试图找出可能导致这种行为的任何差异,但没有什么引起我的注意。
老实说,考虑到比较的两个元素似乎是预定义的,我甚至不知道这是否与我的代码有关。
我的第一个猜测是,这个部分是在创建项目之前调用的,但列表视图中的所有项目都是在我尝试调用这段代码时创建的。
有人能给我指一个解决方案吗?
您的控件不是用样式标志LVS_SINGLESEL
创建的。因此,调用GetSelectedItem
会导致断言。在多选的情况下,使用GetFirstSelectedItem
和GetNextSelectedItem
而不是GetSelectedItem
。对于单选,您可以继续使用GetSelectedItem
,但必须将LVS_SINGLESEL
样式标志添加到控件中。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- cmake在我的项目中所需的所有静态库都不成功
- 为什么我的代码在输出中增加了93天
- 为什么我的Qt程序在断言失败后继续运行?
- 是什么导致我的C 代码中的断言错误
- 我的C++片段中无法解释的断言失败
- 我不知道为什么调试断言在我的程序上失败的答案
- 我下面的断言是对的吗
- 我是Gettein错误的C 断言失败堆损坏
- opencv错误:当我校准相机时,convert.cpp(opencv)中的断言失败
- 将派生类对象分配给基类对象时会发生什么(我的意思是对象断言,而不是指针)
- WTL CListViewCtrl getSelectedItem导致我的断言失败
- 如何断言应该使用c++ 11来编译我的程序
- 异常vs断言的科学计算家伙(我是我的代码的唯一用户)
- Kmeans断言错误:我的垫子不是空的
- 可能导致调试断言错误的原因.具体来说,在我的代码中
- 按值传递对象时出现断言错误--它是我的复制构造函数