2012-08-11 93 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