次の方法で共有


CMDIFrameWnd クラス

Windows のマルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) のフレーム ウィンドウの機能が用意されています。さらに、ウィンドウを管理するメンバーも用意されています。

class CMDIFrameWnd : public CFrameWnd

メンバー

30a87cxk.collapse_all(ja-jp,VS.110).gifパブリック コンストラクター

名前

説明

CMDIFrameWnd::CMDIFrameWnd

CMDIFrameWnd を構築します。

30a87cxk.collapse_all(ja-jp,VS.110).gifパブリック メソッド

名前

説明

CMDIFrameWnd::CreateClient

この CMDIFrameWndの Windows MDICLIENT ペインを作成します。CWndOnCreate のメンバー関数によって呼び出されます。

CMDIFrameWnd::CreateNewChild

新しい子ウィンドウを作成します。

CMDIFrameWnd::GetWindowMenuPopup

ウィンドウのポップアップ メニューを返します。

CMDIFrameWnd::MDIActivate

別の MDI 子ウィンドウをアクティブにします。

CMDIFrameWnd::MDICascade

カスケード形式のすべての子ウィンドウを並べ替えます。

CMDIFrameWnd::MDIGetActive

子を最大化するかどうかを示すフラグとともに現在アクティブな MDI 子ウィンドウを取得します。

CMDIFrameWnd::MDIIconArrange

最小化されたすべてのドキュメントの子ウィンドウを並べ替えます。

CMDIFrameWnd::MDIMaximize

MDI 子ウィンドウが最大化されます。

CMDIFrameWnd::MDINext

現在アクティブな子ウィンドウの後ろの子ウィンドウは直ちにアクティブにし、他のすべての子ウィンドウの後ろに現在アクティブな子ウィンドウを設定します。

CMDIFrameWnd::MDIPrev

前の子ウィンドウをアクティブにし、その後ろに現在アクティブな子ウィンドウを直ちに設定します。

CMDIFrameWnd::MDIRestore

最大化または最小化されたサイズの MDI 子ウィンドウを復元します。

CMDIFrameWnd::MDISetMenu

MDI フレーム ウィンドウ、ウィンドウのポップアップ メニュー、または両方のメニューを置き換えます。

CMDIFrameWnd::MDITile

並べて表示された形式のすべての子ウィンドウを並べ替えます。

解説

アプリケーションのための便利な MDI フレーム ウィンドウを作成するには、CMDIFrameWndからクラスを派生します。アプリケーションに固有のデータを格納する、派生クラスにメンバー変数を追加します。ウィンドウにメッセージが送られたときに行われる処理を指定するには、派生クラスにメッセージ処理メンバー関数とメッセージ マップを実装します。

CFrameWnd[作成] または LoadFrame のメンバー関数を呼び出して、MDI フレーム ウィンドウを作成できます。

[作成]LoadFrameを呼び出す前に、new C++ の演算子を使用してヒープのフレーム ウィンドウ オブジェクトを構築する必要があります。[作成] を呼び出す前に、AfxRegisterWndClass のグローバル関数のクラスをフレーム ウィンドウのアイコンおよびクラスのスタイルを設定するには、登録できます。

イミディエイト引数としてフレームの作成のパラメーターを渡すために [作成] のメンバー関数を使用します。

LoadFrame は **[作成]**ほどの引数を必要とし、フレームのキャプション、アイコン、アクセラレータ テーブルとメニューを含むリソースからなく、既定のほとんどを取得します。LoadFrameにアクセスするには、これらのリソースはすべて同じリソース id (たとえば、IDR_MAINFRAME) が必要です。

MDIFrameWndCFrameWndから派生したが、フレーム ウィンドウ クラスは CMDIFrameWnd から DECLARE_DYNCREATEで宣言する必要がありません書き込みます。

CMDIFrameWnd のクラスは CFrameWndの既定の実装の大部分を継承します。これらの機能の詳細については、CFrameWnd のクラスの説明を参照してください。CMDIFrameWnd のクラスに次の機能があります:

  • MDI フレーム ウィンドウは、コントロール バーとともにそれを再配置 MDICLIENT のウィンドウを管理します。MDI クライアント ウィンドウが MDI 子フレーム ウィンドウの直接の親です。CMDIFrameWnd で指定された WS_HSCROLLWS_VSCROLL のウィンドウ スタイルはメイン フレーム ウィンドウではなく、MDI クライアント ウィンドウに適用します。これによって、ユーザーは、MDI クライアント領域をスクロールできます (Windows プログラム マネージャーと同様に、たとえば)。

  • MDI フレーム ウィンドウは、アクティブな MDI 子ウィンドウがない場合、メニュー バーとして使用される既定のメニューを所有します。アクティブな MDI 子がの場合、MDI フレーム ウィンドウのメニュー バーは、MDI 子ウィンドウのメニューに自動的に置き換えられます。

  • MDI フレーム ウィンドウには、現在の MDI 子ウィンドウと同様に 1 の場合、動作します。たとえば、コマンド メッセージは、MDI フレーム ウィンドウの前の現在アクティブな MDI 子に転送されます。

  • MDI フレーム ウィンドウは、次の標準的な[ウィンドウ]メニューのコマンドの既定のハンドラーがあります:

    • ID_WINDOW_TILE_VERT

    • ID_WINDOW_TILE_HORZ

    • ID_WINDOW_CASCADE

    • ID_WINDOW_ARRANGE

  • MDI フレーム ウィンドウに、現在のドキュメントの新しいフレームとビューを作成する ID_WINDOW_NEWの実装があります。アプリケーションは、MDI ウィンドウの処理をカスタマイズする場合、既定のコマンドの実装をオーバーライドできます。

フレーム ウィンドウを破棄するときに [削除] C++ の演算子を使用しないでください。代わりに、CWnd::DestroyWindow を使用してください。PostNcDestroyCFrameWnd の実装では、ウィンドウが破棄されると、C++ のオブジェクトを削除します。ユーザーがフレーム ウィンドウを閉じると、既定の OnClose のハンドラーを呼び出します DestroyWindow

CMDIFrameWndの詳細については、フレーム ウィンドウを参照してください。

継承階層

CObject

CCmdTarget

CWnd

CFrameWnd

CMDIFrameWnd

必要条件

ヘッダー: afxwin.h

参照

関連項目

CFrameWnd クラス

階層図

CWnd クラス

CMDIChildWnd クラス

概念

MFC MDI サンプル

MFC MDIDOCVW サンプル

MFC SNAPVW サンプル