3

を使用してダイアログを作成する場合DialogBox、自分のDLGPROC関数でWM_CLOSEを処理してを呼び出さないと、ダイアログは閉じませんEndDialog

これは仕様によるものですが、なぜWM_CLOSEがDefDlgProcによって自動的に処理されないように選択されたのか興味があります。その理由はありますか?

4

1 に答える 1

3

これを自問してください:

WM_CLOSEのデフォルトの処理はどうなりますか?呼び出しEndDialogますか?EndDialogは非常にまれな状況でのみ機能すると思います。

その他の提案:

  • ダイアログでのユーザー入力の検証、入力が範囲外またはその他の方法で無効な場合のエラーの表示、ダイアログの終了なし
  • 子ウィンドウを閉じ、ダイアログの子ウィンドウが使用しているリソース/メモリを解放し、COMオブジェクトを解放します。基本的には、最初にクリーンアップしてからダイアログを終了します。
于 2012-10-25T14:40:22.033 に答える