小编yet*_*der的帖子

ListView_GetNextItem 始终返回 0

我有一些代码当前导致无限循环,但我无法找到原因。

该代码旨在根据列表框中选择的项目在整数上设置位标志。这是由 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)

c++ winapi

0
推荐指数
1
解决办法
136
查看次数

标签 统计

c++ ×1

winapi ×1