开发者

dialog box controls - detect changes

I want to detect when any control on a dialog box is changed by user action. For example, when data is entered in a text box, a date is entered in a date-time picker, a check bo开发者_JS百科x is checked or unchecked, etc. Up to now I have ignored such notifications and simply retrieved the state of the controls when the user pushes some button but now I want to know a change has taken place (I want to enable the Apply button on a property sheet). I don't really care what change has taken place, all I want to know is that something has changed. By change I do NOT mean a change in focus but some actual action by the user to change a control.

I use plain old c++, no MFC or anything fancy.

How do I go about this?


You can test whether a checkbox has been checked with the BN_CLICKED notification code which you'd get through WM_COMMAND.

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;

That is an example of how your DialogProc might be set up. You can switch on lParam or LOWORD( wParam ) to identify which button.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜