一般情況下用發(fā)消息模擬點擊窗口上的某個button可以這樣做:
PostMessage(WM_COMMAND, MAKEWPARAM(buttonId, BN_CLICKED), LPARAM(GetDlgItem(buttonId )));
但如果要模擬點擊OK按鈕 (使用了DefaultPushButton Style)時,用以上的方法并不管用。
解決辦法:
先讓OK Button獲取Focus再發(fā)送WM_COMMAND Message。
CWnd* pOkButton = GetDlgItem(IDOK);
pOkButton->SetFocus();
PostMessage(WM_COMMAND, MAKEWPARAM(IDOK, BN_CLICKED), LPARAM(GetDlgItem(IDOK)));
Cancel Button無此問題。