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::Create
、CFrameWnd::Create
、CFrameWnd::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