原理是在 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);
}
来源:CSDN
作者:FromBen
链接:https://blog.csdn.net/qq_34662299/article/details/103566714