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

Posted

技术标签:

【中文标题】在给定时间段后关闭或放弃 MFC 对话框【英文标题】:Close or discard MFC dialog after a given period of time 【发布时间】:2009-06-11 09:27:10 【问题描述】:

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

【问题讨论】:

【参考方案1】:

为您的计时器声明一个 ID,即在您的 CMyDialog.h 某处:

static const UINT ID_MY_TIMER = 1000;

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

SetTimer(ID_MY_TIMER, 10000, NULL); // 10000ms = 10 secs

WM_TIMER添加一个处理程序(生成的函数将被称为OnTimer):

void CMyDialog::OnTimer(UINT_PTR nIDEvent)

    if (nIDEvent == ID_MY_TIMER)
    
        EndDialog(IDOK);
    
    ...

IDOK 替换为 IDCANCEL,具体取决于您从 DoModal 返回的结果。

【讨论】:

【参考方案2】:

使用SetTimer 10 秒超时。在计时器消息处理程序上发布关闭消息。

【讨论】:

以上是关于在给定时间段后关闭或放弃 MFC 对话框的主要内容,如果未能解决你的问题,请参考以下文章

MFC如何在切换视图时关闭无模式对话框

如何在 Visual Studio 中禁用基于对话框的 MFC 应用程序的自动关闭?

MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对话框

如何防止在Enter和Escape键上关闭MFC对话框?

在MFC生产的基本对话框界面中,只有关闭按钮,没有最大最小化按钮,如何给它添加一个最小化按钮?

MFC怎么在主窗口显示后,加载子窗口