C++ 删除列表视图中特定项目的复选框

C++ 删除列表视图中特定项目的复选框,c++,windows,winapi,C++,Windows,Winapi,我正在使用以下代码删除列表视图中特定项旁边的复选框: LVITEM lvI; lvI.iItem = i; lvI.mask = LVIF_STATE; lvI.stateMask = LVIS_STATEIMAGEMASK; lvI.state = 0; SendMessage(hListOutput, LVM_SETITEM, 0, (LPARAM) &lvI); 它可以工作,但如果我单击复选框原来所在的位置,它会重新出现 如何在列表视图中删除特定项上的复选框,并使其保持删除状

我正在使用以下代码删除列表视图中特定项旁边的复选框:

LVITEM lvI;

lvI.iItem = i;
lvI.mask = LVIF_STATE;
lvI.stateMask = LVIS_STATEIMAGEMASK;
lvI.state = 0;

SendMessage(hListOutput, LVM_SETITEM, 0, (LPARAM) &lvI);
它可以工作,但如果我单击复选框原来所在的位置,它会重新出现


如何在列表视图中删除特定项上的复选框,并使其保持删除状态?

将所需的复选框状态保存在变量中(默认为空)。在“已更改事件”复选框中,如果该变量不为null,则将状态翻转到保存的值。

将接受此作为答案,因为它给了我解决该问题的想法。请注意,您必须在
WM\u NOTIFY
中检查
LVN\u ITEMCHANGING
,并检查
uOldState
是否为0,以及将状态保存在某个位置。