CMDIFrameWnd クラス
Windows のマルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) のフレーム ウィンドウの機能が用意されています。さらに、ウィンドウを管理するメンバーも用意されています。
class CMDIFrameWnd : public CFrameWnd
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
CMDIFrameWnd を構築します。 |
パブリック メソッド
名前 |
説明 |
---|---|
この CMDIFrameWndの Windows MDICLIENT ペインを作成します。CWndの OnCreate のメンバー関数によって呼び出されます。 |
|
新しい子ウィンドウを作成します。 |
|
ウィンドウのポップアップ メニューを返します。 |
|
別の MDI 子ウィンドウをアクティブにします。 |
|
カスケード形式のすべての子ウィンドウを並べ替えます。 |
|
子を最大化するかどうかを示すフラグとともに現在アクティブな MDI 子ウィンドウを取得します。 |
|
最小化されたすべてのドキュメントの子ウィンドウを並べ替えます。 |
|
MDI 子ウィンドウが最大化されます。 |
|
現在アクティブな子ウィンドウの後ろの子ウィンドウは直ちにアクティブにし、他のすべての子ウィンドウの後ろに現在アクティブな子ウィンドウを設定します。 |
|
前の子ウィンドウをアクティブにし、その後ろに現在アクティブな子ウィンドウを直ちに設定します。 |
|
最大化または最小化されたサイズの MDI 子ウィンドウを復元します。 |
|
MDI フレーム ウィンドウ、ウィンドウのポップアップ メニュー、または両方のメニューを置き換えます。 |
|
並べて表示された形式のすべての子ウィンドウを並べ替えます。 |
解説
アプリケーションのための便利な MDI フレーム ウィンドウを作成するには、CMDIFrameWndからクラスを派生します。アプリケーションに固有のデータを格納する、派生クラスにメンバー変数を追加します。ウィンドウにメッセージが送られたときに行われる処理を指定するには、派生クラスにメッセージ処理メンバー関数とメッセージ マップを実装します。
CFrameWndの [作成] または LoadFrame のメンバー関数を呼び出して、MDI フレーム ウィンドウを作成できます。
[作成] か LoadFrameを呼び出す前に、new C++ の演算子を使用してヒープのフレーム ウィンドウ オブジェクトを構築する必要があります。[作成] を呼び出す前に、AfxRegisterWndClass のグローバル関数のクラスをフレーム ウィンドウのアイコンおよびクラスのスタイルを設定するには、登録できます。
イミディエイト引数としてフレームの作成のパラメーターを渡すために [作成] のメンバー関数を使用します。
LoadFrame は **[作成]**ほどの引数を必要とし、フレームのキャプション、アイコン、アクセラレータ テーブルとメニューを含むリソースからなく、既定のほとんどを取得します。LoadFrameにアクセスするには、これらのリソースはすべて同じリソース id (たとえば、IDR_MAINFRAME) が必要です。
MDIFrameWnd が CFrameWndから派生したが、フレーム ウィンドウ クラスは CMDIFrameWnd から DECLARE_DYNCREATEで宣言する必要がありません書き込みます。
CMDIFrameWnd のクラスは CFrameWndの既定の実装の大部分を継承します。これらの機能の詳細については、CFrameWnd のクラスの説明を参照してください。CMDIFrameWnd のクラスに次の機能があります:
MDI フレーム ウィンドウは、コントロール バーとともにそれを再配置 MDICLIENT のウィンドウを管理します。MDI クライアント ウィンドウが MDI 子フレーム ウィンドウの直接の親です。CMDIFrameWnd で指定された WS_HSCROLL と WS_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 を使用してください。PostNcDestroy の CFrameWnd の実装では、ウィンドウが破棄されると、C++ のオブジェクトを削除します。ユーザーがフレーム ウィンドウを閉じると、既定の OnClose のハンドラーを呼び出します DestroyWindow。
CMDIFrameWndの詳細については、フレーム ウィンドウを参照してください。
継承階層
CMDIFrameWnd
必要条件
ヘッダー: afxwin.h