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


みけにゃん  URL  2008-01-21 02:53:55  No: 67343

今回のはどのページを見ても書いていない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-21 05:54:34  No: 67344

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


仲澤@失業者  2008-01-21 20:07:15  No: 67345

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


みけにゃん  URL  2008-01-22 07:30:32  No: 67346

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

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

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

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


瀬戸っぷ  2008-01-22 09:31:34  No: 67347

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加