我有一些代码当前导致无限循环,但我无法找到原因。
该代码旨在根据列表框中选择的项目在整数上设置位标志。这是由 While 循环中的 case 语句处理的。
我已经在调试器上跟踪了代码,并且 selectedItem 的值永远不会改变。列表框的句柄似乎有效,并且使用相同的句柄进行填充。
我尝试过使用 SendMessage 函数和 ListView_GetNextItem 宏,前者在我的代码中被注释掉。
任何帮助将不胜感激,我假设我在这里遗漏了一些明显的东西!
编辑:我将此循环基于此处看到的循环: win32retrieve index of all selected items from listview
int getTypeStatus()
{
int retVal =0;
//int selectedItem = SendMessage(lstFileStatus, LVM_GETNEXTITEM, (WPARAM)-1, MAKELPARAM(LVIS_SELECTED,0));
int selectedItem = ListView_GetNextItem(lstFileStatus,-1, LVNI_SELECTED);
while (selectedItem != -1)
{
switch (selectedItem){
case 0:
retVal = retVal | NOT_VERIFIED;
break;
case 1:
retVal = retVal | IRRELEVANT;
break;
case 2:
retVal = retVal | NOT_IN_LIST;
break;
case 3:
retVal = retVal | CONFIRMED; …Run Code Online (Sandbox Code Playgroud)