力为的技术博客

联系 聚合 管理
  154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks
一般情况下用发消息模拟点击窗口上的某个button可以这样做:
PostMessage(WM_COMMAND, MAKEWPARAM(buttonId, BN_CLICKED), LPARAM(GetDlgItem(buttonId )));

但如果要模拟点击OK按钮 (使用了DefaultPushButton Style)时,用以上的方法并不管用。

解决办法:
先让OK Button获取Focus再发送WM_COMMAND Message。
   CWnd* pOkButton = GetDlgItem(IDOK);
   pOkButton->SetFocus();
   PostMessage(WM_COMMAND, MAKEWPARAM(IDOK, BN_CLICKED), LPARAM(GetDlgItem(IDOK)));

Cancel Button无此问题。
posted on 2012-08-03 14:30 力为 阅读(3044) 评论(0)  编辑 收藏 引用 所属分类: 3. VC&MFC&Qt

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理