gpt4 book ai didi

c++ - 为什么我的 ListBox 中仍然有字符串,即使在使用循环单独删除它们之后?

转载 作者:行者123 更新时间:2023-11-30 03:15:07 27 4
gpt4 key购买 nike

偶然发现了一个看起来很奇怪的错误......我用 addstring 添加了 ListBox 项目......我让列表框控件返回一个计数作为 DWORD 并将其转换为整数使用以下代码,仅删除列出的部分字符串...我意识到某些类型转换不是必需的,但我已经尝试过不进行类型转换,但问题仍然存在...代码:

int count = (int)myListBox->GetListBoxInfo();
for (int cnt = 0; cnt <= count; cnt++) {
UINT itemIndex = (UINT)cnt;
myListBox->DeleteString(itemIndex);

}
myListBox->UpdateData();
myListBox->UpdateWindow();

我确定可能还有另一种方法可以清除列表,但我很好奇为什么这不起作用....

亲切的问候 stackoverflow,

最佳答案

将您的列表框想象成

0  foo
1 bar
2 baz

现在,进入你的循环。删除索引 0:

0  bar
1 baz

现在删除索引 1

0  bar

看到问题了吗?这会做你想做的:

int count = (int)myListBox->GetListBoxInfo();
for (int i=0; i<count; ++i)
myListBox->DeleteString(0);

myListBox->UpdateData();
myListBox->UpdateWindow();

但实际上,将所有这些都保护起来,然后这样做:

myListBox->ResetContent();

参见 ResetContent在 MSDN 库中。

关于c++ - 为什么我的 ListBox 中仍然有字符串,即使在使用循环单独删除它们之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com