CFrameWnd

CFrameWndクラスは重複した Windows シングル ドキュメント インターフェイス (SDI) またはポップアップ フレーム ウィンドウ、ウィンドウを管理するためのメンバーの機能を提供します。
アプリケーションの便利なフレーム ウィンドウを作成するには、 CFrameWndからクラスを派生します。アプリケーションに固有のデータを格納する、派生クラスにメンバー変数を追加します。メッセージをウィンドウに指示された場合に何が起こるかを指定するには、派生クラスで実装するメッセージ ハンドラー メンバー関数とメッセージをマップします。
フレーム ウィンドウを作成するには、3 つの方法があります。:
-
直接作成を使用して構築します。
-
直接、 LoadFrameを使用して構築します。
-
間接的にドキュメント テンプレートを使用して構築します。
作成またはLoadFrameのいずれかを呼び出す前に、C++ のnew演算子を使用して、ヒープ上のフレーム ウィンドウ オブジェクトを作成する必要があります。Createを呼び出す前に、ウィンドウ クラス、アイコンとクラス フレームのスタイルを設定するには、 AfxRegisterWndClassグローバル関数を登録することもできます。
Createメンバー関数を使用して、フレームの作成パラメーターを即時の引数として渡す。
LoadFrame 作成より少ない引数を必要とし、フレームのキャプション、アイコン、アクセラレータ テーブル、メニューなどのリソースからの代わりにその既定値のほとんどを取得します。LoadFrameでアクセスできるようにするには、これらのすべてのリソースは、同じリソース ID (たとえば、 IDR_MAINFRAME) が必要。
CFrameWndオブジェクトがビューやドキュメントが、直接、フレームワークの代わりに、プログラマが直接作成しないされます。CDocTemplateオブジェクトは、フレームの作成を含むビューの作成と接続の適切なドキュメントとビューを調整します。CDocTemplateコンス トラクターのパラメーターは、 CRuntimeClass関係の 3 つのクラスの (ドキュメント、フレーム、および表示) を指定します。CRuntimeClassオブジェクト フレームワークによって、ユーザーが (たとえば、ファイルを新しいコマンドまたは複数ドキュメント インターフェイス (MDI) ウィンドウに新しいコマンドを使用して) 指定したときの新しいフレームを動的に作成されます。
上記RUNTIME_CLASS機構が正しく動作するためにDECLARE_DYNCREATEをCFrameWndから派生して、フレーム ウィンドウ クラスを宣言する必要があります。
CFrameWnd Windows の典型的なアプリケーションのメイン ウィンドウの次の関数を実行する既定の実装が含まれています。:
-
CFrameWndフレーム ウィンドウは、Windows のアクティブ ウィンドウまたは、現在の入力フォーカスの独立した現在アクティブなビューの追跡。フレームが再アクティブ化すると、アクティブなビュー CView::OnActivateViewを呼び出して通知します。
-
コマンド メッセージと、 OnSetFocus、 OnHScroll、およびCWndのOnVScroll関数によって処理を含め、多くの共通のフレーム通知メッセージがCFrameWndフレーム ウィンドウは、現在アクティブなビューに委任されています。
-
現在アクティブなビュー (または現在アクティブな MDI 子フレーム ウィンドウは、MDI フレームの場合) は、フレーム ウィンドウのキャプションを確認できます。フレーム ウィンドウのFWS_ADDTOTITLEスタイル ビットをオフにすることによってこの機能を無効にすることができます。
-
CFrameWndフレーム ウィンドウは、コントロール バー、ビュー、およびフレーム ウィンドウのクライアント領域内の他の子ウィンドウの位置を管理します。フレーム ウィンドウは、ツールバーと他のコントロール バーのボタンのアイドル時間を更新も行います。CFrameWndフレーム ウィンドウのオンとオフ、ツールバーとステータス バーを切り替えコマンドの既定の実装をも。
-
CFrameWndフレーム ウィンドウは、メイン メニュー バーを管理します。ポップアップ メニューが表示されるときは、フレーム ウィンドウUPDATE_COMMAND_UI機構を使用してメニュー項目する必要があります有効、無効、またはチェックを確認します。ユーザーがメニュー項目を選択すると、フレーム ウィンドウ、ステータス バー メッセージ文字列は、コマンドを更新します。
-
CFrameWndフレーム ウィンドウは、キーボード アクセラレータを自動的に変換オプションのアクセラレータ テーブルをが。
-
CFrameWndフレーム ウィンドウは、オプションが状況依存のヘルプのために使用されるLoadFrameセット ID をヘルプします。フレーム ウィンドウ、メイン オーケストレータの状況依存のヘルプ (SHIFT + F1) と印刷プレビュー モードのようなセミモーダルです。
-
CFrameWndフレーム ウィンドウ ファイル マネージャーからドラッグされ、フレーム ウィンドウにドロップでファイルを開きます。ファイル拡張子を登録し、アプリケーションに関連付けられている場合は、フレーム ウィンドウ ファイル マネージャーでまたは、 ShellExecute Windows 関数が呼び出されたとき、データ ファイル、ユーザーを開くときに発生、動的データ交換 (DDE) オープン要求に応答します。
-
フレーム ウィンドウがアプリケーションのメイン ウィンドウ (つまり、 CWinThread::m_pMainWnd) の場合は、ユーザーが、アプリケーションは、フレーム ウィンドウを閉じるとき ( OnClose ・ OnQueryEndSessionは、変更したドキュメントを保存するよう求める。
-
フレーム ウィンドウがアプリケーションのメイン ウィンドウの場合は、フレーム ウィンドウの WinHelp を実行しているコンテキストです。WINHELP をシャット ダウンする、フレーム ウィンドウを閉じるします。それはこのアプリケーションのヘルプを起動すると EXE。
フレーム ウィンドウを破棄するには、C++ 演算子の削除を使用しません。CWnd::DestroyWindowをの代わりに使用します。ウィンドウが破棄されると、cframewnd PostNcDestroyのC++ オブジェクトが削除されます。ユーザーのフレーム ウィンドウを閉じる場合は、 OnCloseデフォルトハンドラー DestroyWindow を呼び出します。
Cframewnd クラスの詳細についてを参照してください でVisual の C++ プログラマのガイドのフレーム ウィンドウについてのトピック。
#include lt;afxwin.h>
クラス メンバーの |nbsp;基本クラス|階層図(&N)
参照特価;CWnd、 CMDIFrameWnd、 CMDIChildWnd、 CView、 CDocTemplate、 CRuntimeClass(&N)