フォーム ビュー (MFC)
フォーム ベースのアプリケーション (ビュー クラスが CFormView
から派生したアプリケーション) を含め、MFC ライブラリをサポートする任意の Visual C++ アプリケーションにフォームを追加できます。 フォームをサポートするアプリケーションを最初に作成しなかった場合、新しいフォームを挿入するときに、Visual C++ によってフォームのサポートが追加されます。 既定のドキュメント/ビュー アーキテクチャを実装する SDI または MDI アプリケーションでは、ユーザーが [新規] コマンド (既定では [ファイル] メニュー内) を選択すると、Visual C++ は使用可能なフォームから選択するようにユーザーに求めます。
SDI アプリケーションでは、ユーザーが [新規] コマンドを選択すると、フォームの現在のインスタンスは引き続き実行されますが、フォームが見つからない場合は、選択したフォームを持つアプリケーションの新しいインスタンスが作成されます。 MDI アプリケーションでは、ユーザーが [新規] コマンドを選択すると、フォームの現在のインスタンスは引き続き実行されます。
Note
フォームは、ダイアログ ベースのアプリケーション (ダイアログ クラスが CDialog
に基づくアプリケーションと、ビュー クラスが実装されていないアプリケーション) に挿入できます。 しかし、ドキュメント/ビュー アーキテクチャがない場合、Visual C++ では、[ファイル] > [新規] 機能は自動的には実装されません。 さまざまなプロパティ ページを含むタブ付きダイアログ ボックスを実装するなど、ユーザーが追加のフォームを表示する方法を作成する必要があります。
アプリケーションに新しいフォームを挿入すると、Visual C++ は次の操作を実行します。
選択したフォームスタイルのクラス (
CFormView
、CRecordView
、CDaoRecordView
、またはCDialog
) の 1 つに基づいてクラスを作成します。適切なスタイルでダイアログ リソースを作成します (または、クラスにまだ関連付けされていない既存のダイアログ リソースを使用することもできます)。
既存のダイアログ リソースを選択する場合は、ダイアログ ボックスの [プロパティ] ページを使用してこれらのスタイルを設定する必要がある場合があります。 ダイアログ ボックスのスタイルには、次のものを含める必要があります。
WS_CHILD=On
WS_BORDER=Off
WS_VISIBLE=Off
WS_CAPTION=Off
ドキュメント/ビュー アーキテクチャに基づくアプリケーションの場合は、新しいフォーム コマンド (クラス ビューで右クリック) は次の操作も実行します。
CDocument
ベースのクラスを作成する新しいクラスを作成する代わりに、プロジェクト内に任意の既存の
CDocument
ベースのクラスを使用できます。文字列、メニュー、およびアイコン リソースを含むドキュメント テンプレート (
CDocument
から派生) を生成します。テンプレートの基盤となる新しいクラスを作成することもできます。
アプリケーションの
InitInstance
コードにでAddDocumentTemplate
の呼び出しを追加します。Visual C++ は、作成した新しいフォームごとにこのコードを追加します。これにより、ユーザーが [新規] コマンドを選択すると、使用可能なフォームの一覧にこのフォームが追加されます。 このコードには、フォームに関連付けられたリソース ID と、新しいフォーム オブジェクトを構成する関連するドキュメント、ビュー、およびフレーム クラスの名前が含まれます。
ドキュメント テンプレートはドキュメント、フレーム ウィンドウとビューを結合するために機能します。 1 つのドキュメントでは、多数のテンプレートを作成できます。
詳細については、以下を参照してください: