我想检测用户操作何时更改对话框上的任何控件。例如,在文本框中输入数据时,会在日期时间选择器中输入日期,选中或取消选中复选框等。到目前为止,我已忽略此类通知,并且只是检索控件的状态时用户按下某个按钮,但现在我想知道发生了更改(我想在属性表上启用“应用”按钮)。我真的不在乎发生了什么变化,我想知道的是有些事情发生了变化。通过改变,我不是指焦点的改变,而是用户改变控制的一些实际动作。
我使用简单的旧c ++,没有MFC或任何花哨的东西。
我该怎么做?
答案 0 :(得分:1)
您可以使用通过WM_COMMAND获得的BN_CLICKED通知代码来测试是否已选中复选框。
switch( uMsg ) {
...
case WM_COMMAND: {
switch( HIWORD( wParam ) ) {
case BN_CLICKED: {
if( Button_GetCheck( lParam ) == BST_CHECKED ) {
...
}
break;
}
default:
return false;
}
break;
}
default:
return false;
}
return true;
这是一个如何设置DialogProc的示例。您可以打开lParam或LOWORD( wParam )
来识别哪个按钮。