2

Win32でこれを達成しようとしていますが、WinFormsの世界でも同じルールが適用されると確信しています。

Q:メインウィンドウを作成し、それが表示されているときにモーダルダイアログを表示したいのですが。問題は; メインウィンドウが完全に初期化されて表示されたことをどのように知ることができますか?つまり、ダイアログを表示するのに最適なタイミングはいつですか。

アイデア:
1)処理WM_CREATEし、最後のステップとしてPostMessage(WM_USER_MESSAGE)WM_USER_MESSAGEモーダルダイアログを 処理して表示します!
2)WM_CREATEタイマーを処理して約300ミリ秒に設定します。処理WM_TIMERし、タイマーを強制終了し、モーダルダイアログを表示します! 3)最初のアクティベーションの場合は、
ハンドルします。モーダルダイアログを 処理して表示します! 4)初めて表示する場合は、モーダルダイアログを表示します。WM_ACTIVATEPostMessage(WM_USER_MESSAGE)WM_USER_MESSAGE
WM_SHOWWINDOW

上記のアプローチは機能しますが、結果は必ずしも良いとは限りません。より良い方法はありますか?おそらく何らかの方法で処理WM_ENTERIDLEまたはメッセージですか?WM_KICKIDLE

4

1 に答える 1

0

はい。ダイアログを表示する最適なタイミングは次のとおりです。

関数を使用して WM_CREATE を処理し、ウィンドウ ハンドルが有効であることを確認できます。

:: GetSafeHwnd( m_hwnd)

その際、モーダルダイアログを表示することができます。

于 2010-12-26T16:54:05.540 に答える