我正在处理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
}
关于c++ - LVN_ITEMCHANGING-区分用户输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12010825/