次の方法で共有


フォーム ビュー (MFC)

MFC ライブラリをサポートするすべての Visual C++ アプリケーションに、フォームを追加できます。たとえば、フォーム ベースのアプリケーション、つまり CFormView から派生したビュー クラスを持つアプリケーションに追加できます。 フォームをサポートしないアプリケーションとして作成した場合でも、新しいフォームを挿入すると、Visual C++ によってフォームのサポートが追加されます。 既定のドキュメント/ビュー アーキテクチャを実装した SDI アプリケーションまたは MDI アプリケーションでは、ユーザーが [新規作成] をクリックすると、フォームを選択するダイアログ ボックスが表示されます。このコマンドは、既定では [ファイル] メニューに表示されます。

SDI アプリケーションでは、ユーザーが [新規作成] をクリックすると、フォームの現在のインスタンスは引き続き実行されますが、ユーザーが選択したフォームが見つからない場合は、そのフォームでアプリケーションの新しいインスタンスが作成されます。 MDI アプリケーションでは、ユーザーが [新規作成] をクリックしても、フォームの現在のインスタンスが引き続き実行されます。

注意

ダイアログ ベースのアプリケーションにもフォームを挿入できます。ダイアログ ベースのアプリケーションとは、CDialog を基本クラスとするダイアログ クラスを持ち、ビュー クラスが実装されていないアプリケーションです。 ただし、このアプリケーションはドキュメント/ビュー アーキテクチャを備えていないので、Visual C++ は [ファイル] メニューの |[新規作成] 機能を自動的には実装しません。 したがって、複数のプロパティ ページを持つタブ付きダイアログ ボックスを実装するなどして、ユーザーが追加フォームを表示できるようにする必要があります。

アプリケーションに新しいフォームを追加すると、以下の処理が行われます。

  • 選択したフォーム スタイルのクラス (CFormViewCRecordViewCDaoRecordView、または CDialog) の派生クラスが作成されます。

  • 適切なスタイルでダイアログ リソースが作成されます。または、クラスに関連付けられていない既存のダイアログ リソースを使用することもできます。

    既存のダイアログ リソースを使用する場合は、ダイアログ ボックスのプロパティ ページでスタイルを設定する必要があります。 ダイアログ ボックスのスタイルを次のように設定してください。

    WS_CHILD=On

    WS_BORDER=Off

    WS_VISIBLE=Off

    **WS_CAPTION=**Off

ドキュメント/ビュー アーキテクチャに基づくアプリケーションの場合は、新規フォーム コマンド (クラス ビューで右クリックして実行) によって以下の処理も行われます。

  • CDocument の派生クラスが作成されます。

    新しいクラスを作成するのではなく、プロジェクトにある既存の CDocument 派生クラスを使用することもできます。

  • 文字列、メニュー、アイコンの各リソースを備えたドキュメント テンプレート (CDocument から派生) が生成されます。

    テンプレートの基本クラスを新規作成することもできます。

  • アプリケーションの InitInstance のコードに AddDocumentTemplate の呼び出しが追加されます。

    Visual C++ は、新しく作成したフォームごとにこのコードを追加します。ユーザーが [新規作成] をクリックすると、このコードによって利用可能なフォームの一覧にフォームが追加されます。 このコードには、フォームに関連付けられているリソース ID と共に、新しいフォーム オブジェクトを構成するドキュメント クラス、ビュー クラス、およびフレーム クラスの名前が含まれます。

    ドキュメント テンプレートによって、ドキュメント、フレーム ウィンドウ、およびビューが対応付けられます。 1 つのドキュメントに対し、複数のテンプレートを作成できます。

詳細については、次のトピックを参照してください。

参照

その他の技術情報

ユーザー インターフェイス