Win32でこれを達成しようとしていますが、WinFormsの世界でも同じルールが適用されると確信しています。
Q:メインウィンドウを作成し、それが表示されているときにモーダルダイアログを表示したいのですが。問題は; メインウィンドウが完全に初期化されて表示されたことをどのように知ることができますか?つまり、ダイアログを表示するのに最適なタイミングはいつですか。
アイデア:
1)処理WM_CREATE
し、最後のステップとしてPostMessage(WM_USER_MESSAGE)
。WM_USER_MESSAGE
モーダルダイアログを
処理して表示します!
2)WM_CREATE
タイマーを処理して約300ミリ秒に設定します。処理WM_TIMER
し、タイマーを強制終了し、モーダルダイアログを表示します!
3)最初のアクティベーションの場合は、
ハンドルします。モーダルダイアログを
処理して表示します!
4)初めて表示する場合は、モーダルダイアログを表示します。WM_ACTIVATE
PostMessage(WM_USER_MESSAGE)
WM_USER_MESSAGE
WM_SHOWWINDOW
上記のアプローチは機能しますが、結果は必ずしも良いとは限りません。より良い方法はありますか?おそらく何らかの方法で処理WM_ENTERIDLE
またはメッセージですか?WM_KICKIDLE