1

複数のドキュメントとビュー、およびタブ付きウィンドウ インターフェイスを持つ MFC ドキュメント ビュー アーキテクチャ アプリケーションに取り組んでいます。

私は、他のタブの 1 つで [OK] ボタンを押すと、別のタブに自動的に切り替えるように依頼されました。他のタブをクリックすると、IWebBrowser2 の C++ ラッパーを使用して特定の Web ページに移動します。

タブをクリックして手動でこれを行うと、すべて問題なく、ビュー内の Web ページが正常に読み込まれます。

これを行う最初の試みでは、への呼び出しに応答してタブが正常に切り替わりました

 AfxGetMainWnd()->SendMessageToDescendants(SOME_MESSAGE, ...);

ただし、この Windows メッセージを誤った時点で送信すると、一連のイベントによってメッセージを送信した (モードレス) ダイアログ (*) が存在しなくなるため、制御が返されるとアプリケーションがクラッシュします。

その後、電話をかけるための正しい場所を見つけましたが、他のタブがアクティブになると、Web ページが本来のように表示されなくなりました。

この問題をデバッグするために、動作する状況と動作しない状況の両方で READYSTATE をチェックするコードを追加しました。ページの読み込みに失敗すると (Navigate2 の呼び出しで S_OK が返されたにもかかわらず)、READYSTATE は READYSTATE_LOADING のままになります。

残念ながら、部分的に機能していたときから多くの編集を行っています。

OnSetFocus、CView::OnActivateView などの最も明白なイベントに TRACE ステートメントを追加しましたが、動作が異なるにもかかわらず、すべてのトレースが同じ順序で出力されます。

* ビューでホスト

4

0 に答える 0