有谁知道如何解决这个问题我想为列表中的每个选定项目执行代码
itemint=SendMessage(hwndList,LVM_GETNEXTITEM,-1,LVNI_SELECTED))
{
while (itemint != -1)
{
itemint =SendMessage(hwndList,LVM_GETNEXTITEM, itemint, LVNI_SELECTED);
////
}
Run Code Online (Sandbox Code Playgroud)
无法从选定的项目中找到第一个(索引最低的)项目
您的迭代代码本质上是正确的。问题是您在第二次调用 后正在做您的工作SendMessage,正如您的注释行的位置所证明的那样。将工作移至第二次调用之前SendMessage,您将不会跳过第一个选定的项目。
itemint = SendMessage(hwndList, LVM_GETNEXTITEM, -1, LVNI_SELECTED))
{
while (itemint != -1)
{
// do work on selected item here
itemint = SendMessage(hwndList, LVM_GETNEXTITEM, itemint, LVNI_SELECTED);
}
}
Run Code Online (Sandbox Code Playgroud)
无论如何,您的代码会错过第一个选定的项目,但也会向您显示索引为 -1 的最终项目。
| 归档时间: |
|
| 查看次数: |
1380 次 |
| 最近记录: |