新しいドキュメント、ウィンドウ、ビューの作成
以下の各図は、ドキュメント、ビュー、フレーム ウィンドウの作成プロセスを大まかに示したものです。 詳しい内容については、関係するオブジェクトについて取り上げる他の記事の中で説明しています。
対応するオブジェクトは、このプロセスの完了後に存在し、互いを指すポインターを格納します。 以降の図を見ると、オブジェクトの作成順序がわかります。 それぞれの図を順にたどってください。
ドキュメントの作成過程
フレーム ウィンドウの作成過程
ビューの作成過程
新しいドキュメント、ビュー、フレームウィンドウ オブジェクトが、フレームワークでどのように初期化されるかについては、MFC ライブラリ リファレンスの CDocument、CView、CFrameWnd、CMDIFrameWnd、CMDIChildWnd の各クラスに関するページを参照してください。 また、テクニカル ノート 22 も参照してください。[ファイル] メニューの [新規作成] と [開く] 項目における作成と初期化のプロセスを、フレームワークの標準コマンドを考察する中で、さらに詳しく説明しています。
これらのクラスに対する独自の追加機能を初期化する
アプリケーションのオブジェクトを初期化するためのメンバー関数は、オーバーライドできます。どの時点でオーバーライドすればよいかも、上の各図に示されています。 ビュー クラスの OnInitialUpdate
のオーバーライドは、ビューを初期化するうえで最適な場所です。 OnInitialUpdate
は、フレーム ウィンドウが作成された直後に呼び出され、フレーム ウィンドウ内のビューがそのドキュメントにアタッチされます。 たとえば、目的のビューが (CView
ではなく CScrollView
から派生した) スクロール ビューの場合、OnInitialUpdate
のオーバーライドの中で、ドキュメントのサイズに基づいてビューのサイズを設定する必要があります。 (このプロセスは、クラスの説明で説明されていますCScrollView.)メンバー関数OnNewDocument
をCDocument
オーバーライドし、OnOpenDocument
アプリケーション固有のドキュメントの初期化を提供できます。 通常、ドキュメントの作成には 2 とおりの方法があるので、その両方をオーバーライドする必要があります。
ほとんどの場合、オーバーライドでは、基底クラスのバージョンを呼び出す必要があります。 詳細については、MFC ライブラリ リファレンスで、CDocument、CView、CFrameWnd、CWinApp の各クラスの名前付きメンバー関数を参照してください。
関連項目
ドキュメント テンプレートとドキュメントおよびビューの作成手順
ドキュメント テンプレートの作成
ドキュメントおよびビューの作成
各種 MFC オブジェクト間の関係