2012-10-07 52 views
0

如何捕獲對某個項目的點擊,然後更改其所有子項目狀態?獲取列表控件中的選定項目,更改子項目

enter image description here

我知道我可以得到GetFirstSelectedItemPosition所選擇的項目,但我要如何使用SetItemState給定的位置?

編輯:基本上,我是在尋找這樣的:m_ListControl.SetExtendedStyle(LVS_EX_FULLROWSELECT)

回答

0

創建用於LVN_ITEMCHANGED通知的通知處理程序。只要使用鼠標或鍵盤選擇了新項目,就會調用該處理程序。如果您特別需要處理鼠標點擊,請改爲爲NM_CLICK通知創建通知處理程序。

這兩個事件處理程序的參數LPARAM都指向一個包含名爲iItem的成員的結構。這是剛剛選擇或點擊的項目的索引。使用此iItem作爲SetItemState方法的第一個參數。

+0

是的,但我該如何獲得這個項目的子項目? – Kajzer

+0

在點擊的情況下,LPARAM指向的結構也有一個名爲iSubItem的成員,您可以使用它。如果要枚舉所有子項,請調用GetHeaderCtrl然後調用其GetItemCount方法。如果您想將狀態應用於單獨的子項目,那麼您將需要創建所有者繪圖列表控件,因爲這不受支持。你會在這裏找到所有者繪製的列表控件 - http://www.codeproject.com/KB/list/ – Superman

+0

但是我怎麼沒有LPARAM,而是有:OnLvnItemchangedList(NMHDR * pNMHDR,LRESULT * pResult) – Kajzer

相關問題