1

この質問は、この記事を読んだ後、私の心の中で起こりました:http: //www.codeproject.com/Articles/3911/The-singular-non-modality-of-MFC-modal-dialogs。彼は、MFCのモーダルダイアログは厳密にはモーダルではなく、モーダルダイアログとして動作させるためのベルとホイッスルを備えたモードレスダイアログとして(内部的に)実装されていると述べています。

具体的には、彼は言います:

MFCコマンドルーティングメカニズムは、メッセージマップと仮想関数の組み合わせを使用してその機能を実現します。モーダルメッセージループはMFCコマンドルーティング機構の範囲外で制御されるため、真のモーダルダイアログはこのメカニズムを完全に破壊します。

誰かがこの声明を解明できますか?彼らが真にモーダルなダイアログを実装しようとした場合に何がうまくいかなかったかの例は、物事を大いに明らかにするでしょう。

4

1 に答える 1

2

モーダルダイアログはメッセージループを停止しますが、ダイアログのイベントを処理するにはメッセージループが必要です。したがって、モーダルダイアログは、独自の内部メッセージループを備えた非モーダルダイアログにすぎません。

于 2012-09-06T09:37:09.557 に答える