要实现对话框自动关闭,可以使用定时器来实现。具体步骤如下:
-
在对话框类的头文件中添加定时器的ID号,例如:
#define TIMER_ID_CLOSE_DIALOG 1001
。 -
在对话框类的OnInitDialog()函数中添加定时器,设置定时器的时间间隔,例如5秒钟自动关闭对话框。
BOOL CMyDialog::OnInitDialog() { CDialogEx::OnInitDialog(); // 启动定时器,定时关闭对话框 SetTimer(TIMER_ID_CLOSE_DIALOG, 5000, NULL); return TRUE; }
- 实现对话框类的OnTimer()函数,在该函数中处理定时器消息,关闭对话框。
void CMyDialog::OnTimer(UINT_PTR nIDEvent) { // 判断定时器ID是否为关闭对话框的定时器ID if (nIDEvent == TIMER_ID_CLOSE_DIALOG) { // 停止定时器 KillTimer(TIMER_ID_CLOSE_DIALOG); // 关闭对话框 EndDialog(IDOK); } CDialogEx::OnTimer(nIDEvent); }
这样,当对话框初始化完成后,定时器会启动,并在指定的时间间隔后自动关闭对话框。