MFC如何让messagebox消息框隔一定时间关闭

丶灬走出姿态 提交于 2019-12-17 08:58:28

原理是在 messagebox语句之前设置一定时器开始计时,在定时器 OnTimer函数中写入关闭该定时器以及给消息框发送WM_CLOSE消息的语句。
举例说明:
1、主函数中messagebox相关行代码如下:

PeriodTime=10000;
CchessDlg* pDlg = (CchessDlg*)AfxGetMainWnd();
pDlg->SetTimer(1, PeriodTime, NULL);
MessageBox(_T("此处执行出错"),_T("提示"));

2、OnTimer相关行代码如下:

void CchessDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO:  在此添加消息处理程序代码和/或调用默认值
	switch (nIDEvent)
	{
	case 1:
		{
			//关闭定时器
			  CchessDlg* pDlg = (CchessDlg*)AfxGetMainWnd();
			  pDlg->KillTimer(1);
			  CWnd* hWnd = FindWindow(NULL, _T("提示"));
			  if (hWnd)
			  {
				  hWnd->PostMessage(WM_CLOSE, NULL, NULL);
			  }
		
		}
		break;
	default:
		MessageBox(_T("default"));
		break;
	}
	CDialogEx::OnTimer(nIDEvent);
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!