在给定的时间段后关闭或丢弃MFC对话框

3 c++ mfc visual-c++

如何在10秒后自动关闭或丢弃MFC对话框.

Rob*_*Rob 12

为你的计时器声明一个ID,即在你的CMyDialog.h某个地方:

static const UINT ID_MY_TIMER = 1000;
Run Code Online (Sandbox Code Playgroud)

在你的OnInitDialog函数中创建一个计时器:

SetTimer(ID_MY_TIMER, 10000, NULL); // 10000ms = 10 secs
Run Code Online (Sandbox Code Playgroud)

添加处理程序WM_TIMER(将调用生成的函数OnTimer):

void CMyDialog::OnTimer(UINT_PTR nIDEvent)
{
    if (nIDEvent == ID_MY_TIMER)
    {
        EndDialog(IDOK);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

更换IDOKIDCANCEL这取决于你回报什么导致你的DoModal想要的.