0
如何捕獲對某個項目的點擊,然後更改其所有子項目狀態?獲取列表控件中的選定項目,更改子項目
我知道我可以得到GetFirstSelectedItemPosition所選擇的項目,但我要如何使用SetItemState給定的位置?
編輯:基本上,我是在尋找這樣的:m_ListControl.SetExtendedStyle(LVS_EX_FULLROWSELECT)
如何捕獲對某個項目的點擊,然後更改其所有子項目狀態?獲取列表控件中的選定項目,更改子項目
我知道我可以得到GetFirstSelectedItemPosition所選擇的項目,但我要如何使用SetItemState給定的位置?
編輯:基本上,我是在尋找這樣的:m_ListControl.SetExtendedStyle(LVS_EX_FULLROWSELECT)
創建用於LVN_ITEMCHANGED
通知的通知處理程序。只要使用鼠標或鍵盤選擇了新項目,就會調用該處理程序。如果您特別需要處理鼠標點擊,請改爲爲NM_CLICK
通知創建通知處理程序。
這兩個事件處理程序的參數LPARAM
都指向一個包含名爲iItem
的成員的結構。這是剛剛選擇或點擊的項目的索引。使用此iItem
作爲SetItemState
方法的第一個參數。
是的,但我該如何獲得這個項目的子項目? – Kajzer
在點擊的情況下,LPARAM指向的結構也有一個名爲iSubItem的成員,您可以使用它。如果要枚舉所有子項,請調用GetHeaderCtrl然後調用其GetItemCount方法。如果您想將狀態應用於單獨的子項目,那麼您將需要創建所有者繪圖列表控件,因爲這不受支持。你會在這裏找到所有者繪製的列表控件 - http://www.codeproject.com/KB/list/ – Superman
但是我怎麼沒有LPARAM,而是有:OnLvnItemchangedList(NMHDR * pNMHDR,LRESULT * pResult) – Kajzer