0
我正在處理LVN_ITEMCHANGING
消息,但每次檢查狀態發生變化時都會發出信號。LVN_ITEMCHANGING - 區分用戶輸入
我需要一種方式,用戶改變檢查狀態之間進行區分,並且我在呼喚ListView_SetCheckState
有沒有簡單的方法來做到這一點?我不知道的另一個訊息也許是?或者有沒有人有任何建議?
我正在處理LVN_ITEMCHANGING
消息,但每次檢查狀態發生變化時都會發出信號。LVN_ITEMCHANGING - 區分用戶輸入
我需要一種方式,用戶改變檢查狀態之間進行區分,並且我在呼喚ListView_SetCheckState
有沒有簡單的方法來做到這一點?我不知道的另一個訊息也許是?或者有沒有人有任何建議?
ListView_SetCheckState 發送 LVM_SETITEMSTATE消息。 LVN_ITEMCHANGING消息也是發送到控件的父窗口。這意味着該函數是同步的,並且在返回ListView_SetCheckState之前執行LVN_ITEMCHANGING處理程序。這允許使用簡單的布爾標誌,如:
bChangedByProgram = TRUE;
ListView_SetCheckState(...);
bChangedByProgram = FALSE;
在LVN_ITEMCHANGING處理程序:
if (! bChangedByProgram)
{
// item state is changed by user
}
能否通過添加一個設置了一些標誌,一個的thunk功能'ListView_SetCheckState',然後取消設置標誌? – jamesdlin 2012-08-17 18:04:06
你使用MFC嗎? – 2012-08-17 18:04:23
@ jamesdlin我不這麼認爲。而我沒有使用MFC。 – Josh 2012-08-17 18:05:36