MFCでダイアログボックスの自動終了を実装する方法

ダイアログボックスを自動で閉じたい場合は、タイマーを使用して実現できます。具体的には、次の手順に従います。

  1. ダイアログクラスのヘッダーファイルで、タイマーIDを #define TIMER_ID_CLOSE_DIALOG 1001 のように追加する。
  2. ダイアログクラスのOnInitDialog()関数にタイマーを追加し、タイマーの間隔を設定して、例えば5秒後にダイアログを自動的に閉じます。
BOOL CMyDialog::OnInitDialog()
{
    CDialogEx::OnInitDialog();
    
    // 启动定时器,定时关闭对话框
    SetTimer(TIMER_ID_CLOSE_DIALOG, 5000, NULL);
    
    return TRUE;
}
  1. ダイアログクラスの 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);
}

そうすれば、ダイアログ初期化完了後にタイマーが起動し、指定された時間間隔後に自動的にダイアログを閉じます。

bannerAds