gpt4 book ai didi

c++ - 删除并清除组合框 win32 api 中的所有项目

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:21 28 4
gpt4 key购买 nike

我正在构建一个 Windows 应用程序,但我有一个拒绝清理的组合框。我希望在一个按钮单击到另一个按钮之间删除组合框项目。我试过了:

SendDlgItemMessage(hWnd, IDC_LIST_COMMANDS, CB_RESETCONTENT, 0, 0);

还有:

SendMessage(CommandsListBox, CB_RESETCONTENT, 0, 0);

但它们都不起作用。在上述调用之一之后调用 LB_GETCOUNT 时,我没有得到 0。

        case SOME_EVENT:

ProfileHandler.IdentityIndex = (int)SendMessage(ProfilesCombo,
CB_GETCURSEL, 0, 0);
SendMessage(ProfilesCombo, CB_GETLBTEXT,
(WPARAM)ProfileHandler.stringIndex, (LPARAM)ProfileHandler.string);
if (ProfileHandler.IdentityIndex == -1) {
MessageBox(hWnd, "Invalid !", "Error !", MB_OK);
break;
}

StringsSet.clear();
if (fuc.GetStrings(string(ProfileHandler.string), &StringsSet)
== SERVER_ERROR) {
MessageBox(hWnd, "Error Loading strings", "Error !", MB_OK);
break;
}

SendMessage(CommandsListBox, CB_RESETCONTENT, 0, 0); // reset
content before writing strings
it = StringsSet.begin();
for (; it != StringsSet.end(); ++it)
{
(int)SendMessage(CommandsListBox, LB_ADDSTRING, 0,
(LPARAM)(*it).c_str());
}
break;

所以,我想在点击收到的每个 SOME_EVENT 之间清除组合框,然后再次加载字符串。现在发生的事情是,每次我单击按钮并收到 SOME_EVENT 事件时,我只是重新加载命令,导致重复。知道如何解决这个问题吗??

最佳答案

试试 SendMessage(hChildWindows[1], CB_DELETESTRING, (WPARAM)0, (LPARAM)0);

此消息只会清除 ComboBox 中的一行(Item 或 String)

关于c++ - 删除并清除组合框 win32 api 中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49366157/

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