Win32SDKでスプラッシュウインドウをするには


みけにゃん  URL  2008-01-20 17:53:55  No: 67343  IP: 192.*.*.*

今回のはどのページを見ても書いていないWin32SDK(Platform SDK)での
スプラッシュウインドウの表示のさせ方です。

Mail Viewerの起動時にメールデータの読み込みを行うようになったので
スプラッシュウインドウでなんとかしようと思うのですが・・・・。

VC++6.0の時はC++(MFC?)ならコレクションから挿入が出来たようですが
Win32SDKでのプログラムで書いた場合はどうやれば良いのでしょうか?

開発環境は去年末からVista Home Premium + VS2005(SE)になりました。
参考ソースはhttp://angelteatime.punyu.net/knot/file/mview006.lzhです。
→私のローカルにあるのはこれにListViewのソート処理が入ったものです。

編集 削除
ブル  2008-01-20 20:54:34  No: 67344  IP: 192.*.*.*

SDKでやるなら全部自分でやればいいのでは?そのためのSDK直使いではないかと…
単なる表示ならウィンドウを出すだけ。プログレスバー等を動作させたいならマルチスレッドにする。

編集 削除
仲澤@失業者  2008-01-21 11:07:15  No: 67345  IP: 192.*.*.*

アプリケーションが表示しているスプラッシュウインドウとは
モードレスダイアログであることがほとんどです。
ただの暇つぶしでない場合は、別スレッドで当該の処理をしながら
ダイアログの表示を更新します。

編集 削除
みけにゃん  URL  2008-01-21 22:30:32  No: 67346  IP: 192.*.*.*

まだ解決した訳ではないのですけれど、かなり
近いヒント(と言うよりは答え?)がMSのKBにありました。

ウィンドウ(タイトル画面での)スプラッシュを加える方法
http://support.microsoft.com/kb/230090/ja

でも素直に実装出来ない部分(タイマー処理とか)があるので
どう実装すれば問題ないでしょうか・・・・。

ちなみにプログレスバーは付ける予定はありません。

編集 削除
瀬戸っぷ  2008-01-22 00:31:34  No: 67347  IP: 192.*.*.*

プログラム起動時にスレッド1つ生成してモードレスダイアログを表示。
(メインウィンドウは非表示で作成しておいてもいいでしょう。)
ダイアログではWM_INITDIALOGで、表示位置の設定や画像などを表示。
モードレスダイアログのメッセージループはそのままスレッドの方で回して、
メインスレッドでは初期化処理を継続。
初期化が終わった段階で、ダイアログにメッセージを投げて閉じる様にすればよいかと。
ダイアログ閉じた後はメッセージループも終了してスレッドは終了してしまって問題ないかと。

編集 削除