CCreateContext 構造体

フレームワークは、ドキュメントに関連付けられているフレーム ウィンドウとビューを作成するときに、 CCreateContext 構造を使用します。

構文

struct CCreateContext

解説

CCreateContext は構造体であり、基底クラスを持っていません。

ウィンドウを作成する場合、この構造体の値は、ドキュメントのコンポーネントをデータのビューに接続するために使用される情報を提供します。 作成プロセスの一部をオーバーライドする場合にのみ、 CCreateContext を使用する必要があります。

CCreateContext構造体には、ドキュメント、フレーム ウィンドウ、ビュー、およびドキュメント テンプレートへのポインターが含まれています。 また、作成するビューの種類を識別する CRuntimeClass へのポインターも含まれています。 実行時クラス情報と現在のドキュメント ポインターは、新しいビューを動的に作成するために使用されます。 次の表は、各 CCreateContext メンバーを使用する方法とタイミングを示しています。

メンバー Type 目的
m_pNewViewClass CRuntimeClass* CRuntimeClass 作成する新しいビューの を選択します。
m_pCurrentDoc CDocument* 新しいビューに関連付ける既存のドキュメント。
m_pNewDocTemplate CDocTemplate* 新しい MDI フレーム ウィンドウの作成に関連付けられているドキュメント テンプレート。
m_pLastView CView* 分割ウィンドウ ビューの作成やドキュメントでの 2 番目のビューの作成のように、追加のビューがモデル化される元のビュー。
m_pCurrentFrame CFrameWnd* ドキュメントで 2 番目のフレーム ウィンドウを作成する場合と同様に、追加のフレーム ウィンドウをモデル化するフレーム ウィンドウ。

ドキュメント テンプレートは、ドキュメントとその関連コンポーネントを作成するときに、 CCreateContext 構造体に格納されている情報を検証します。 たとえば、存在しないドキュメントのビューは作成しないでください。

Note

CCreateContext内のすべてのポインターは省略可能であり、指定されていない場合や不明な場合はNULLできます。

CCreateContext は、"See Also" の下にリストされているメンバー関数によって使用されます。これらの関数をオーバーライドする場合は、これらの関数の説明を参照して特定の情報を確認してください。

一般的なガイドラインをいくつか次に示します。

  • CWnd::CreateCFrameWnd::CreateCFrameWnd::LoadFrameのように、ウィンドウ作成の引数として渡された場合、作成コンテキストは新しいウィンドウの接続先を指定します。 ほとんどのウィンドウでは、構造体全体は省略可能であり、 NULL ポインターを渡すことができます。

  • CFrameWnd::OnCreateClientなどのオーバーライド可能なメンバー関数の場合、CCreateContext引数は省略可能です。

  • ビューの作成に関連するメンバー関数の場合は、ビューを作成するのに十分な情報を指定する必要があります。 たとえば、分割ウィンドウの最初のビューでは、ビュー クラス情報と現在のドキュメントを指定する必要があります。

一般に、フレームワークの既定値を使用する場合は、 CCreateContextを無視できます。 さらに高度な変更を試みる場合は、Microsoft Foundation クラス ライブラリのソース コードまたは VIEWEX などのサンプル プログラムがガイドします。 必要なパラメーターを忘れた場合は、忘れた内容がフレームワーク アサーションによって通知されます。

CCreateContextの詳細については、MFC サンプル VIEWEXを参照してください。

要件

Header: afxext.h

関連項目

階層図
CFrameWnd::Create
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Create
CSplitterWnd::CreateView
CWnd::Create