一定時間経過後にダイアログを消す – プログラミング – Home

一定時間経過後にダイアログを消す
 
通知
すべてクリア

[解決済] 一定時間経過後にダイアログを消す


こま
 こま
(@こま)
ゲスト
結合: 24年前
投稿: 28
Topic starter  

VC++2005でMFCアプリを作っています。

現在、ダイアログ上のボタンを押すと新しくモーダルダイアログが作られる、
というプログラムを作りました。

この新しくできたダイアログを、
タイマを使って一定時間経過後に自動的に消すようにしたいのですが、
どうすれば良いのでしょうか。

よろしくお願いします。


引用未解決
トピックタグ
ララ
 ララ
(@ララ)
ゲスト
結合: 22年前
投稿: 93
 

そのダイアログに対して

SendMessage(WM_COMMAND, IDOK, 0)

したらどうでしょうか?


返信引用
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

SendMessage(WM_COMMAND, IDOK, 0)を使うまでもありません。
EndDialog()を呼び出せばダイアログボックスは終了します。

// ダイアログボックス初期化
BOOL CXXXDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// タイマを起動する
UINT_PTR nIDEvent = 1; // nIDEventは使用可能な値を設定すること
UINT nElapse = 2000; // 2秒(必要な時間に変更)
UINT_PTR nResult = SetTimer(nIDEvent, nElapse, 0);// 復帰値を確認すること
return TRUE;
}

// タイマハンドラの追加(クラスウィザードまたは手動で追加する)
// クラスウィザードで追加すれば関数プロトタイプも作成してくれる。
BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)
ON_WM_TIMER()
END_MESSAGE_MAP()

// タイマハンドラ本体
void CXXXDlg::OnTimer(UINT_PTR nIDEvent)
{
EndDialog(IDCANCEL); // ダイアログを終了
CDialog::OnTimer(nIDEvent);
}


返信引用
こま
 こま
(@こま)
ゲスト
結合: 24年前
投稿: 28
Topic starter  

maruさん、ありがとうございました。

書き込みの通りにすると
ダイアログが消えるように動作させることができました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました