2012-08-11 95 views
2

我用下面的代码移除旁边的复选框的特定项目在我的列表视图:删除复选框具体项目

LVITEM lvI; 

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

SendMessage(hListOutput, LVM_SETITEM, 0, (LPARAM) &lvI); 

它的工作原理,但如果我点击的地方复选框用于它重新出现!

如何删除列表视图中特定项目上的复选框,并将其删除?

回答

1

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

+0

会接受这个答案,因为它给了我解决这个问题的想法。应该注意的是,你必须检查'WM_NOTIFY'中的'LVN_ITEMCHANGING',并检查'uOldState'是否为0,以及在什么地方保存状态。 – Josh 2012-08-11 18:58:14