タイトル用開始画面を一定時間表示させ、次の画面を呼び出すには?

解決


でみ  2006-11-27 16:36:52  No: 63717  IP: 192.*.*.*

タイトル用の開始画面を5秒間表示させ
次にメイン画面を表示させる処理を行いたいと思っています。
以下の処理だと開始画面が表示されず5秒後にメイン画面が表示されてしまいます。よい方法はないでしょうか
OnInitDialog() 
{
  CDialog::OnInitDialog();
  Sleep(5000);
  OnCancel();
  CDmiGazouKaisekiDlg myDL;
  myDL.DoModal();

編集 削除
Blue  2006-11-27 16:43:27  No: 63718  IP: 192.*.*.*

そういう処理は、ダイアログクラスに記述しないで、
CXXXAppクラスのInitiInstanceメソッド内に書くようにしましょう。

VC6なら
http://homepage2.nifty.com/DSS/VCPP/MFC/Window/WindowSprash.htm
のように簡単にスプラッシュウィンドウを表示できます。

このままのソースで
>CDmiGazouKaisekiDlg 
をそのまま使いたいのであれば、CDmiGazouKaisekiDlg にタイマーイベントを用意して、
5秒後に自分自身を閉じるような記述を入れればいいでしょう。
(もちろん、ダイアログを呼ぶのはCXXXApp::InitiInstanceメソッドで)


それと、レスがついているスレッドを放置することはやめましょう。

編集 削除
Blue  2006-11-27 16:49:37  No: 63719  IP: 192.*.*.*

CSplashWndって、MDIかSDIじゃないと挿入できないらしい。。。

編集 削除
Blue  2006-11-27 16:56:03  No: 63720  IP: 192.*.*.*

>CSplashWndって、MDIかSDIじゃないと挿入できないらしい。。。
普通にMicrosoftのサポートにあった。

ダイアログ ベースのVisual C++での MFC アプリケーションにスプラッシュ画面を追加する方法
http://support.microsoft.com/kb/190684/ja

編集 削除
でみ  2006-11-28 10:13:28  No: 63721  IP: 192.*.*.*

解決しました。
ありがとうございました。

編集 削除