对话框自动退出messagebox
- 创建MessageBox和定时器
void xxxDlg::OnBnClickedApply()
{
// TODO: 在此添加控件通知处理程序代码
UINT nRet = MessageBox(_T("Do you want to save?"), _T("apply"), MB_YESNO);
if (nRet == IDYES)
{
A2llist = m_A2llist;
//创建定时器,用于自动触发关闭Message对话框
SetTimer(3, 1000, NULL);
//启动一个Message对话框
MessageBox("save successful", "MyMessage", MB_YESNO);
//MessageBox("save successful");
}
}
- 为定时器添加响应消息函数
void xxxDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
//与设置的定时器时间相同时触发定时器
if (nIDEvent == 3)
{
HANDLE hWnd = ::FindWindowEx(NULL, NULL, NULL, "MyMessage"); //查找消息框的标题(与之前设置的要保持一致)
if (hWnd)
{
// way1:直接发送 WM_CLOSE 消息。
//::SendMessage((HWND)hWnd, WM_CLOSE, NULL, NULL);
// way2:
//::EndDialog((HWND)hWnd, IDNO);//返回到上一个界面
// way3:模拟窗口消息点击了【IDNO】按钮
//HWND h = ::GetDlgItem((HWND)hWnd, IDNO);
//if (h)
//{
// TRACE("找到了IDNO控件窗口\n");
// ::PostMessage((HWND)hWnd, WM_COMMAND, MAKEWPARAM(IDNO, BN_CLICKED), (LPARAM)h);
//}
// way4:模拟鼠标移到了【IDNO】按钮上点击
//HWND h = ::GetDlgItem((HWND)hWnd, IDNO);
//if (h)
//{
// TRACE("找到了IDNO控件窗口\n");
// POINT pt;
// CRect rc;
// ::GetWindowRect(h, &rc);
// pt.x = rc.left + 10;
// pt.y = rc.top + 10;
// SetCursorPos(pt.x, pt.y);//模拟鼠标移到了【IDNO】按钮上
// //完成点击
// mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);
// mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);
//}
//way5:模拟键盘回车关闭对话框
//keybd_event(VK_RETURN, 0, 0, 0);
//keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
}
}
CDialog::OnTimer(nIDEvent);
}