次の方法で共有


各種 MFC オブジェクト間の関係

役立ちます。は観点にドキュメント/ビューの作成プロセスを使用して実行中のプログラムを入れます: ドキュメント、ビューの格納に使用されたフレーム ウィンドウとビューはドキュメントに関連付けられています。

  • ドキュメントは文書を作成したドキュメント テンプレートにそのドキュメントおよびポインターのビューの一覧です。

  • ビューはドキュメントへのポインターを保持し、親フレーム ウィンドウの子です。

  • ドキュメント フレーム ウィンドウには、現在のアクティブなビューにポインターを保持します。

  • ドキュメント テンプレートは、開いているドキュメントのリストを保持します。

  • アプリケーションでは、ドキュメント テンプレートの一覧です。

  • ウィンドウは、すべての開いているウィンドウを追跡します。これは、にメッセージを送信できます。

これらの関係は、ドキュメント/ビューの作成時に設定されます。実行中のプログラムのオブジェクトが他のオブジェクトにアクセスする方法を次の表に示します。どのオブジェクトがアプリケーション オブジェクトに AfxGetAppグローバル関数を呼び出してポインターを取得できます。

アプリケーションの他のオブジェクトにアクセスする方法

オブジェクトから

他のオブジェクトにアクセスする方法

Document

ドキュメント ビューの一覧にアクセスするために GetFirstViewPositionGetNextView を使用します。

ドキュメント テンプレートを取得する呼び出し GetDocTemplate

ビュー

ドキュメントを取得する呼び出し GetDocument

フレーム ウィンドウを取得する呼び出し GetParentFrame

ドキュメント フレーム ウィンドウ

現在のビューを取得する呼び出し GetActiveView

ドキュメントを現在のビューに接続するために GetActiveDocument を呼び出します。

MDI フレーム ウィンドウ

現在アクティブな CMDIChildWndを取得する呼び出し MDIGetActive

通常、フレーム ウィンドウに 1 個のビューがありますが、場合によっては、分割ウィンドウと同様に、同じフレーム ウィンドウは、複数のビューが表示されます。フレーム ウィンドウは、現在アクティブなビューへのポインターを保持します; ポインターは別のビューがアクティブになる更新されます。

[!メモ]

メイン フレーム ウィンドウへのポインターがアプリケーション オブジェクトの m_pMainWnd のメンバー変数に格納されます。CWinAppInitInstance のメンバー関数をオーバーライド OnFileNew の呼び出しは、の m_pMainWnd を設定します。OnFileNewをダイヤルする、自分 InitInstance 変数の値を設定します。SDI の COM コンポーネント (サーバー)アプリケーションで /Embedding がコマンド ラインにある変数を設定しない場合もあります)。これで、 m_pMainWndCWinAppではなく、クラス CWinThread のメンバーであることに注意してください。

参照

概念

ドキュメント テンプレートとドキュメント/ビューの作成手順

ドキュメント テンプレートの作成

ドキュメントおよびビューの作成

新しいドキュメント、ウィンドウ、ビューの作成