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