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