MFCでダイアログボックスの自動終了を実装する方法
ダイアログボックスを自動で閉じたい場合は、タイマーを使用して実現できます。具体的には、次の手順に従います。
- ダイアログクラスのヘッダーファイルで、タイマー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);
}
そうすれば、ダイアログ初期化完了後にタイマーが起動し、指定された時間間隔後に自動的にダイアログを閉じます。