CFrameWnd クラス

ウィンドウを管理するメンバーと共に、Windows のシングル ドキュメント インターフェイス (SDI: Single Document Interface) のオーバーラップ フレーム ウィンドウまたはポップアップ フレーム ウィンドウの機能を提供します。

構文

class CFrameWnd : public CWnd

メンバー

パブリック コンストラクター

名前 説明
CFrameWnd::CFrameWnd CFrameWnd オブジェクトを構築します。

パブリック メソッド

名前 説明
CFrameWnd::ActivateFrame フレームを表示し、ユーザーが使用できるようにします。
CFrameWnd::BeginModalState フレーム ウィンドウをモーダルに設定します。
CFrameWnd::Create オブジェクトに関連付けられている Windows フレーム ウィンドウを作成および初期化するための呼び出し CFrameWnd
CFrameWnd::CreateView フレーム内に、派生 CView元ではないビューを作成します。
CFrameWnd::DockControlBar コントロール バーをドッキングします。
CFrameWnd::EnableDocking コントロール バーをドッキングできるようにします。
CFrameWnd::EndModalState フレーム ウィンドウのモーダル状態を終了します。 すべてのウィンドウを無効にします BeginModalState
CFrameWnd::FloatControlBar コントロール バーを浮動させます。
CFrameWnd::GetActiveDocument アクティブ CDocument なオブジェクトを返します。
CFrameWnd::GetActiveFrame アクティブ CFrameWnd なオブジェクトを返します。
CFrameWnd::GetActiveView アクティブ CView なオブジェクトを返します。
CFrameWnd::GetControlBar コントロール バーを取得します。
CFrameWnd::GetDockState フレーム ウィンドウのドッキング状態を取得します。
CFrameWnd::GetMenuBarState 現在の MFC アプリケーションのメニューの表示状態を取得します。
CFrameWnd::GetMenuBarVisibility 現在の MFC アプリケーションのメニューの既定の動作が非表示か表示かを示します。
CFrameWnd::GetMessageBar フレーム ウィンドウに属しているステータス バーへのポインターを返します。
CFrameWnd::GetMessageString コマンド ID に対応するメッセージを取得します。
CFrameWnd::GetTitle 関連するコントロール バーのタイトルを取得します。
CFrameWnd::InitialUpdateFrame OnInitialUpdateフレーム ウィンドウ内のすべてのビューに属するメンバー関数を呼び出します。
CFrameWnd::InModalState フレーム ウィンドウがモーダル状態かどうかを示す値を返します。
CFrameWnd::IsTracking 分割バーが現在移動されているかどうかを判断します。
CFrameWnd::LoadAccelTable アクセラレータ テーブルを読み込む呼び出し。
CFrameWnd::LoadBarState コントロール バーの設定を復元する呼び出し。
CFrameWnd::LoadFrame リソース情報からフレーム ウィンドウを動的に作成する呼び出し。
CFrameWnd::NegotiateBorderSpace フレーム ウィンドウ内の境界線スペースをネゴシエートします。
CFrameWnd::OnBarCheck 指定したコントロール バーでアクションが実行されるたびに呼び出されます。
CFrameWnd::OnContextHelp インプレースアイテムの Shift + F1 ヘルプを処理します。
CFrameWnd::OnSetPreviewMode アプリケーションのメイン フレーム ウィンドウを印刷プレビュー モードに設定します。
CFrameWnd::OnUpdateControlBarMenu 関連付けられたメニューが更新されたときにフレームワークによって呼び出されます。
CFrameWnd::RecalcLayout オブジェクトのコントロール バーの位置を CFrameWnd 変更します。
CFrameWnd::SaveBarState コントロール バーの設定を保存する呼び出し。
CFrameWnd::SetActivePreviewView 指定したビューをリッチ プレビューのアクティブ ビューに指定します。
CFrameWnd::SetActiveView アクティブな CView オブジェクトを設定します。
CFrameWnd::SetDockState フレーム ウィンドウを メイン ウィンドウにドッキングする呼び出し。
CFrameWnd::SetMenuBarState 現在の MFC アプリケーションのメニューの表示状態を非表示または表示に設定します。
CFrameWnd::SetMenuBarVisibility 現在の MFC アプリケーションのメニューの既定の動作を非表示または表示に設定します。
CFrameWnd::SetMessageText 標準ステータス バーのテキストを設定します。
CFrameWnd::SetProgressBarPosition タスク バーに表示される Windows 7 進行状況バーの現在位置を設定します。
CFrameWnd::SetProgressBarRange タスク バーに表示される Windows 7 進行状況バーの範囲を設定します。
CFrameWnd::SetProgressBarState タスク バー ボタンに表示される進行状況インジケーターの種類と状態を設定します。
CFrameWnd::SetTaskbarOverlayIcon 過負荷です。 タスク バー ボタンにオーバーレイを適用して、アプリケーションの状態または通知をユーザーに示します。
CFrameWnd::SetTitle 関連するコントロール バーのタイトルを設定します。
CFrameWnd::ShowControlBar コントロール バーを表示する呼び出し。
CFrameWnd::ShowOwnedWindows オブジェクトの子孫であるすべてのウィンドウを CFrameWnd 表示します。

保護メソッド

名前 説明
CFrameWnd::OnCreateClient フレームのクライアント ウィンドウを作成します。
CFrameWnd::OnHideMenuBar 現在の MFC アプリケーションのメニューが非表示の前に呼び出されます。
CFrameWnd::OnShowMenuBar 現在の MFC アプリケーションのメニューが表示される前に呼び出されます。

パブリック データ メンバー

名前 説明
CFrameWnd::m_bAutoMenuEnable メニュー項目の自動有効化および無効化機能を制御します。
CFrameWnd::rectDefault Windows がウィンドウの初期サイズと位置を選択できるようにオブジェクトをCFrameWnd作成するときに、この静的CRectオブジェクトをパラメーターとして渡します。

解説

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

フレーム ウィンドウを構築するには、次の 3 つの方法があります。

  • を使用して直接構築します Create

  • を使用して直接構築します LoadFrame

  • ドキュメント テンプレートを使用して間接的に構築します。

いずれかCreateLoadFrameを呼び出す前に、C++ new 演算子を使用してヒープ上にフレーム ウィンドウ オブジェクトを構築する必要があります。 呼び出す Create前に、ウィンドウ クラスをグローバル関数に AfxRegisterWndClass 登録して、フレームのアイコンとクラス スタイルを設定することもできます。

フレームの作成パラメーターを Create 即時引数として渡すには、メンバー関数を使用します。

LoadFrameは、フレームのキャプション、アイコン、アクセラレータ テーブル、メニューなど、リソースから既定値の大部分を取得するよりも少ない引数Createを必要とします。 アクセスするには LoadFrame、これらすべてのリソースに同じリソース ID (たとえば) IDR_MAINFRAMEが必要です。

オブジェクトに CFrameWnd ビューとドキュメントが含まれている場合、プログラマが直接作成するのではなく、フレームワークによって間接的に作成されます。 オブジェクトは CDocTemplate 、フレームの作成、含まれているビューの作成、および適切なドキュメントへのビューの接続を調整します。 コンストラクターのパラメーターは、 CDocTemplate 関係する CRuntimeClass 3 つのクラス (ドキュメント、フレーム、ビュー) を指定します。 CRuntimeClassオブジェクトは、ユーザーが指定した場合に新しいフレームを動的に作成するためにフレームワークによって使用されます (たとえば、File New コマンドまたは複数ドキュメント インターフェイス (MDI) ウィンドウの新しいコマンドを使用します)。

上記RUNTIME_CLASSのメカニズムが正しく機能するためには、派生CFrameWndするDECLARE_DYNCREATEフレーム ウィンドウ クラスを宣言する必要があります。

A CFrameWnd には、Windows 用の一般的なアプリケーションでメイン ウィンドウの次の機能を実行するための既定の実装が含まれています。

  • フレーム ウィンドウは CFrameWnd 、Windows のアクティブ ウィンドウまたは現在の入力フォーカスに依存しない現在アクティブなビューを追跡します。 フレームが再アクティブ化されると、アクティブなビューが呼び出 CView::OnActivateViewしによって通知されます。

  • コマンド メッセージと、の関数CWndによってOnVScrollOnSetFocusOnHScroll処理されるメッセージを含む多くの一般的なフレーム通知メッセージは、フレーム ウィンドウによってCFrameWnd現在アクティブなビューに委任されます。

  • 現在アクティブなビュー (または MDI フレームの場合は現在アクティブな MDI 子フレーム ウィンドウ) は、フレーム ウィンドウのキャプションを決定できます。 この機能は、フレーム ウィンドウのスタイル ビットを FWS_ADDTOTITLE オフにすることで無効にすることができます。

  • フレーム ウィンドウは CFrameWnd 、フレーム ウィンドウのクライアント領域内のコントロール バー、ビュー、およびその他の子ウィンドウの位置を管理します。 フレーム ウィンドウでは、ツール バーやその他のコントロール バー ボタンのアイドル時間更新も行われます。 CFrameWndフレーム ウィンドウには、ツール バーとステータス バーをオンまたはオフに切り替えるコマンドの既定の実装もあります。

  • フレーム ウィンドウはCFrameWnd、メインメニュー バーを管理します。 ポップアップ メニューが表示されると、フレーム ウィンドウはメカニズムをUPDATE_COMMAND_UI使用して、有効、無効、またはチェックするメニュー項目を決定します。 ユーザーがメニュー項目を選択すると、フレーム ウィンドウはそのコマンドのメッセージ文字列でステータス バーを更新します。

  • CFrameWndフレーム ウィンドウには、キーボード アクセラレータを自動的に変換するオプションのアクセラレータ テーブルがあります。

  • CFrameWndフレーム ウィンドウには、状況依存のヘルプにLoadFrame使用されるオプションのヘルプ ID が設定されています。 フレーム ウィンドウは、状況依存のヘルプ (Shift + F1) モードや印刷プレビュー モードなどの半モーダル状態のメイン オーケストレーターです。

  • CFrameWndフレーム ウィンドウは、ファイル マネージャーからドラッグしてフレーム ウィンドウにドロップされたファイルを開きます。 ファイル拡張子が登録され、アプリケーションに関連付けられている場合、フレーム ウィンドウは、ユーザーがファイル マネージャーでデータ ファイルを開いたとき、または Windows 関数が呼び出されたときに ShellExecute 発生する動的データ交換 (DDE) オープン要求に応答します。

  • フレーム ウィンドウが メイン アプリケーション ウィンドウ (つまり、CWinThread::m_pMainWndユーザーがアプリケーションを閉じるとき) の場合、フレーム ウィンドウは変更されたドキュメント (for OnClose および OnQueryEndSession) を保存するようにユーザーに求めます。

  • フレーム ウィンドウが メイン アプリケーション ウィンドウの場合、フレーム ウィンドウは WinHelp を実行するためのコンテキストです。 フレーム ウィンドウを閉じると、このアプリケーションのヘルプが起動された場合はシャットダウン WINHELP.EXE します。

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

詳細についてはCFrameWnd、「フレーム ウィンドウ」を参照してください

継承階層

CObject

CCmdTarget

CWnd

CFrameWnd

必要条件

ヘッダー:afxwin.h

CFrameWnd::ActivateFrame

このメンバー関数を呼び出して、フレーム ウィンドウをアクティブ化し、ユーザーが表示して使用できるように復元します。

virtual void ActivateFrame(int nCmdShow = -1);

パラメーター

nCmdShow
CWnd::ShowWindowすパラメーターを指定します。 既定では、フレームが表示され、正しく復元されます。

解説

このメンバー関数は、通常、DDE、OLE、またはフレーム ウィンドウまたはその内容をユーザーに表示する可能性がある他のイベントなどのユーザー インターフェイス以外のイベントの後に呼び出されます。

既定の実装では、フレームがアクティブ化され、Z オーダーの最上位に移動され、必要に応じて、アプリケーションの メイン フレーム ウィンドウに対して同じ手順が実行されます。

フレームのアクティブ化方法を変更するには、このメンバー関数をオーバーライドします。 たとえば、MDI 子ウィンドウを強制的に最大化できます。 適切な機能を追加し、明示的 nCmdShowな基底クラスバージョンを呼び出します。

void CChildFrame::ActivateFrame(int nCmdShow)
{
   // Create the child frame window maximized
   nCmdShow = SW_MAXIMIZE;

   CMDIChildWnd::ActivateFrame(nCmdShow);
}

CFrameWnd::BeginModalState

フレーム ウィンドウをモーダルにします。

virtual void BeginModalState();

CFrameWnd::CFrameWnd

オブジェクトを CFrameWnd 構築しますが、表示されるフレーム ウィンドウは作成しません。

CFrameWnd();

解説

表示されるウィンドウを作成する呼び出し Create

CFrameWnd::Create

オブジェクトに関連付けられている Windows フレーム ウィンドウを作成および初期化するための呼び出し CFrameWnd

virtual BOOL Create(
    LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle = WS_OVERLAPPEDWINDOW,
    const RECT& rect = rectDefault,
    CWnd* pParentWnd = NULL,
    LPCTSTR lpszMenuName = NULL,
    DWORD dwExStyle = 0,
    CCreateContext* pContext = NULL);

パラメーター

lpszClassName
Windows クラスに名前を付ける null で終わる文字列を指します。 クラス名には、グローバル関数または Windows 関数に AfxRegisterWndClass 登録されている任意の名前を RegisterClass 指定できます。 の場合 NULLは、定義済みの既定 CFrameWnd の属性を使用します。

lpszWindowName
ウィンドウ名を表す null で終わる文字列を指します。 タイトル バーのテキストとして使用されます。

dwStyle
ウィンドウ スタイル 属性を指定します。 タイトル バーに FWS_ADDTOTITLE ウィンドウで表されるドキュメントの名前を自動的に表示する場合は、スタイルを含めます。

rect
ウィンドウのサイズと位置を指定します。 この rectDefault 値により、Windows は新しいウィンドウのサイズと位置を指定できます。

pParentWnd
このフレーム ウィンドウの親ウィンドウを指定します。 このパラメーターは、最上位レベルのフレーム ウィンドウ用である NULL 必要があります。

lpszMenuName
ウィンドウで使用するメニュー リソースの名前を識別します。 メニューに文字列ではなく整数 ID がある場合に使用 MAKEINTRESOURCE します。 このパラメーターは、NULL に設定できます。

dwExStyle
ウィンドウ 拡張スタイル 属性を指定します。

pContext
構造体へのポインターを CCreateContext 指定します。 このパラメーターは、NULL に設定できます。

戻り値

初期化が成功した場合は 0 以外。それ以外の場合は 0。

解説

2 つの手順でオブジェクトを CFrameWnd 構築します。 まず、オブジェクトを構築するコンストラクターを CFrameWnd 呼び出してから、Windows フレーム ウィンドウを作成してオブジェクトにアタッチする呼び出 Createしを CFrameWnd 行います。 Create は、ウィンドウのクラス名とウィンドウ名を初期化し、そのスタイル、親、および関連付けられているメニューの既定値を登録します。

引数を指定するCreate代わりに、リソースからフレーム ウィンドウを読み込む代わりに使用LoadFrameします。

CFrameWnd::CreateView

フレーム内にビューを作成する呼び出し CreateView

CWnd* CreateView(
    CCreateContext* pContext,
    UINT nID = AFX_IDW_PANE_FIRST);

パラメーター

pContext
ビューとドキュメントの種類を指定します。

nID
ビューの ID 番号。

戻り値

成功した場合は CWnd オブジェクトへのポインター。それ以外の場合 NULLは .

解説

このメンバー関数を使用して、フレーム内で派生しない CView"ビュー" を作成します。 呼び出した CreateView後、ビューを手動でアクティブに設定し、表示されるように設定する必要があります。これらのタスクは自動的には実行 CreateViewされません。

CFrameWnd::DockControlBar

コントロール バーをフレーム ウィンドウにドッキングします。

void DockControlBar(
    CControlBar* pBar,
    UINT nDockBarID = 0,
    LPCRECT lpRect = NULL);

パラメーター

pBar
ドッキングするコントロール バーをポイントします。

nDockBarID
ドッキングに考慮するフレーム ウィンドウの辺を決定します。 0 または次の 1 つ以上を指定できます。

  • AFX_IDW_DOCKBAR_TOP フレーム ウィンドウの上部にドッキングします。

  • AFX_IDW_DOCKBAR_BOTTOM フレーム ウィンドウの下部にドッキングします。

  • AFX_IDW_DOCKBAR_LEFT フレーム ウィンドウの左側にドッキングします。

  • AFX_IDW_DOCKBAR_RIGHT フレーム ウィンドウの右側にドッキングします。

0 の場合、コントロール バーは、移動先フレーム ウィンドウでのドッキングが有効になっている任意の側にドッキングできます。

lpRect
コントロール バーが移動先フレーム ウィンドウの非クライアント領域にドッキングされる位置を画面座標で指定します。

解説

コントロール バーは、両方CControlBar::EnableDockingCFrameWnd::EnableDockingへの呼び出しで指定されたフレーム ウィンドウのいずれかの辺にドッキングされます。 選択された側はによって決定されます nDockBarID.

CFrameWnd::EnableDocking

フレーム ウィンドウでドッキング可能なコントロール バーを有効にするには、この関数を呼び出します。

void EnableDocking(DWORD dwDockStyle);

パラメーター

dwDockStyle
コントロール バーのドッキング サイトとして機能できるフレーム ウィンドウの辺を指定します。 次の 1 つ以上を指定できます。

  • CBRS_ALIGN_TOP クライアント領域の上部にドッキングできるようにします。

  • CBRS_ALIGN_BOTTOM クライアント領域の下部にドッキングできるようにします。

  • CBRS_ALIGN_LEFT クライアント領域の左側にドッキングできるようにします。

  • CBRS_ALIGN_RIGHT クライアント領域の右側にドッキングできるようにします。

  • CBRS_ALIGN_ANY クライアント領域の任意の側にドッキングできるようにします。

解説

既定では、コントロール バーは、上、下、左、右の順序でフレーム ウィンドウの側面にドッキングされます。

CToolBar::Create の例を参照してください。

CFrameWnd::EndModalState

フレーム ウィンドウをモーダルからモードレスに変更します。

virtual void EndModalState();

解説

EndModalState で無効 BeginModalStateになっているすべてのウィンドウを有効にします。

CFrameWnd::FloatControlBar

コントロール バーをフレーム ウィンドウにドッキングしないようにするには、この関数を呼び出します。

void FloatControlBar(
    CControlBar* pBar,
    CPoint point,
    DWORD dwStyle = CBRS_ALIGN_TOP);

パラメーター

pBar
浮動するコントロール バーをポイントします。

point
コントロール バーの左上隅を配置する位置 (画面座標)。

dwStyle
コントロール バーを新しいフレーム ウィンドウ内で水平方向または垂直方向に配置するかどうかを指定します。 次のいずれかになります。

  • CBRS_ALIGN_TOP コントロール バーの方向を垂直方向に設定します。

  • CBRS_ALIGN_BOTTOM コントロール バーの方向を垂直方向に設定します。

  • CBRS_ALIGN_LEFT コントロール バーの向きを水平方向に設定します。

  • CBRS_ALIGN_RIGHT コントロール バーの向きを水平方向に設定します。

水平方向と垂直方向の両方を指定してスタイルを渡すと、ツール バーの方向が水平方向になります。

解説

通常、これは、プログラムが前回の実行から設定を復元するときに、アプリケーションの起動時に行われます。

この関数は、ドッキングできない場所にコントロール バーをドラッグしながらマウスの左ボタンを離してドロップ操作を実行すると、フレームワークによって呼び出されます。

CFrameWnd::GetActiveDocument

このメンバー関数を呼び出して、現在アクティブなビューにアタッチされている現在 CDocument のビューへのポインターを取得します。

virtual CDocument* GetActiveDocument();

戻り値

現在 CDocumentの . 現在のドキュメントがない場合は、 を返します NULL

CFrameWnd::GetActiveFrame

このメンバー関数を呼び出して、MDI フレーム ウィンドウのアクティブな複数ドキュメント インターフェイス (MDI) 子ウィンドウへのポインターを取得します。

virtual CFrameWnd* GetActiveFrame();

戻り値

アクティブな MDI 子ウィンドウへのポインター。 アプリケーションが SDI アプリケーションの場合、または MDI フレーム ウィンドウにアクティブなドキュメントがない場合は、暗黙的な this ポインターが返されます。

解説

アクティブな MDI 子がない場合、またはアプリケーションが単一ドキュメント インターフェイス (SDI) の場合は、暗黙的な this ポインターが返されます。

CFrameWnd::GetActiveView

このメンバー関数を呼び出して、フレーム ウィンドウ CFrameWnd( ) にアタッチされているアクティブなビュー (存在する場合) へのポインターを取得します。

CView* GetActiveView() const;

戻り値

現在 CViewの . 現在のビューがない場合は、 を返します NULL

解説

この関数は、NULLMDI メイン フレーム ウィンドウ ( CMDIFrameWnd) に対して呼び出されたときに返されます。 MDI アプリケーションでは、MDI メイン フレーム ウィンドウにビューが関連付けされていません。 代わりに、個々の子ウィンドウ ( CMDIChildWnd) には、1 つ以上の関連付けられたビューがあります。 MDI アプリケーションのアクティブなビューは、最初にアクティブな MDI 子ウィンドウを見つけてから、その子ウィンドウのアクティブなビューを見つけることで取得できます。 アクティブな MDI 子ウィンドウは、関数MDIGetActiveGetActiveFrameを呼び出すか、次に示すように見つけることができます。

CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->GetMainWnd();

// Get the active MDI child window.
CMDIChildWnd *pChild = (CMDIChildWnd*)pFrame->GetActiveFrame();

// or CMDIChildWnd *pChild = pFrame->MDIGetActive();

// Get the active view attached to the active MDI child window.
CMyView *pView = (CMyView*)pChild->GetActiveView();

CFrameWnd::GetControlBar

ID に関連付けられているコントロール バーにアクセスするための呼び出し GetControlBar

CControlBar* GetControlBar(UINT nID);

パラメーター

nID
コントロール バーの ID 番号。

戻り値

ID に関連付けられているコントロール バーへのポインター。

解説

パラメーターは nID 、コントロール バーのメソッドに Create 渡される一意の識別子を参照します。 コントロール バーの詳細については、「コントロール バー」のトピックを参照してください。

GetControlBar は、コントロール バーが浮動していて、現在はフレームの子ウィンドウではない場合でも、コントロール バーを返します。

CFrameWnd::GetDockState

フレーム ウィンドウのコントロール バーに関する状態情報をオブジェクトに格納するには、このメンバー関数を CDockState 呼び出します。

void GetDockState(CDockState& state) const;

パラメーター

state
返されたフレーム ウィンドウのコントロール バーの現在の状態を格納します。

解説

その後、次をCDockState使用してCDockState::SaveStateストレージに内容を書き込むことができます。Serialize 後でコントロール バーを以前の状態に戻す場合は、フレーム ウィンドウのコントロール バーに前の状態CDockState::LoadStateを適用する呼び出SetDockStateしを使用して、状態Serializeを読み込みます。

CFrameWnd::GetMenuBarState

現在の MFC アプリケーションのメニューの表示状態を取得します。

virtual DWORD GetMenuBarState();

戻り値

戻り値には、次の値を指定できます。

  • AFX_MBS_VISIBLE (0x01) - メニューが表示されます。

  • AFX_MBS_HIDDEN (0x02) - メニューは非表示です。

解説

ランタイム エラーが発生した場合、このメソッドはデバッグ モードでアサートし、クラスから派生した例外を CException 発生させます。

CFrameWnd::GetMenuBarVisibility

現在の MFC アプリケーションのメニューの既定の状態を非表示にするか表示するかを示します。

virtual DWORD CFrameWnd::GetMenuBarVisibility();

戻り値

このメソッドは、次のいずれかの値を返します。

  • AFX_MBV_KEEPVISIBLE (0x01) - メニューは常に表示され、既定ではフォーカスがありません。

  • AFX_MBV_DISPLAYONFOCUS (0x02) - メニューは既定で非表示になっています。 メニューが非表示の場合は、Alt キーを押してメニューを表示し、フォーカスを設定します。 メニューが表示されている場合は、Alt キーまたは Esc キーを押して非表示にします。

  • AFX_MBV_ DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06) - メニューは既定で非表示になっています。 メニューが非表示の場合は、F10 キーを押してメニューを表示し、フォーカスを設定します。 メニューが表示されている場合は、F10 キーを押してメニューのフォーカスのオンとオフを切り替えます。 メニューは、Alt キーまたは Esc キーを押して非表示にするまで表示されます。

解説

ランタイム エラーが発生した場合、このメソッドはデバッグ モードでアサートし、クラスから派生した例外を CException 発生させます。

CFrameWnd::GetMessageBar

このメンバー関数を呼び出して、ステータス バーへのポインターを取得します。

virtual CWnd* GetMessageBar();

戻り値

ステータス バー ウィンドウへのポインター。

CFrameWnd::GetMessageString

コマンド ID にカスタム文字列を指定するには、この関数をオーバーライドします。

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

パラメーター

nID
目的のメッセージのリソース ID。

rMessage
CString メッセージを配置するオブジェクト。

解説

既定の実装では、リソース ファイルから指定された nID 文字列を読み込むだけです。 この関数は、ステータス バーのメッセージ文字列を更新する必要がある場合に、フレームワークによって呼び出されます。

CFrameWnd::GetTitle

ウィンドウ オブジェクトのタイトルを取得します。

CString GetTitle() const;

戻り値

CStringウィンドウ オブジェクトの現在のタイトルを含むオブジェクト。

CFrameWnd::InitialUpdateFrame

を使用して新しいフレームを作成した後に呼び出しますIntitialUpdateFrameCreate

void InitialUpdateFrame(
    CDocument* pDoc,
    BOOL bMakeVisible);

パラメーター

pDoc
フレーム ウィンドウが関連付けられているドキュメントを指します。 NULL の可能性があります。

bMakeVisible
If TRUEは、フレームが表示され、アクティブになることを示します。 の場合 FALSE、子孫は表示されません。

解説

これにより、そのフレーム ウィンドウ内のすべてのビューが呼び出しを受信 OnInitialUpdate します。

また、以前にアクティブなビューがなかった場合は、フレーム ウィンドウのプライマリ ビューがアクティブになります。 プライマリ ビューは、子 ID が AFX_IDW_PANE_FIRST. 最後に、フレーム ウィンドウが 0 以外の場合 bMakeVisible に表示されます。 0 の場合bMakeVisible、フレーム ウィンドウの現在のフォーカスと表示状態メイン変更されません。 フレームワークの File New および File Open の実装を使用する場合は、この関数を呼び出す必要はありません。

CFrameWnd::InModalState

フレーム ウィンドウがモーダルまたはモードレスの場合にチェックするには、このメンバー関数を呼び出します。

BOOL InModalState() const;

戻り値

yes の場合は 0 以外。それ以外の場合は 0。

CFrameWnd::IsTracking

このメンバー関数を呼び出して、ウィンドウ内の分割バーが現在移動されているかどうかを確認します。

BOOL IsTracking() const;

戻り値

分割操作が進行中の場合は 0 以外。それ以外の場合は 0。

CFrameWnd::LoadAccelTable

指定したアクセラレータ テーブルを読み込む呼び出し。

BOOL LoadAccelTable(LPCTSTR lpszResourceName);

パラメーター

lpszResourceName
アクセラレータ リソースの名前を識別します。 リソースが整数 ID で識別される場合に使用 MAKEINTRESOURCE します。

戻り値

アクセラレータ テーブルが正常に読み込まれた場合は 0 以外。それ以外の場合は 0。

解説

一度に読み込むことができるテーブルは 1 つだけです。

リソースから読み込まれたアクセラレータ テーブルは、アプリケーションが終了すると自動的に解放されます。

フレーム ウィンドウを作成するために呼び出 LoadFrame す場合、フレームワークは、メニューとアイコンのリソースと共にアクセラレータ テーブルを読み込みます。その後、このメンバー関数の呼び出しは不要になります。

CFrameWnd::LoadBarState

フレーム ウィンドウが所有する各コントロール バーの設定を復元するには、この関数を呼び出します。

void LoadBarState(LPCTSTR lpszProfileName);

パラメーター

lpszProfileName
初期化 (INI) ファイル内のセクションの名前、または状態情報が格納されている Windows レジストリ内のキーの名前。

解説

復元される情報には、可視性、水平方向/垂直方向、ドッキング状態、およびコントロール バーの位置が含まれます。

復元する設定は、呼び出す LoadBarState前にレジストリに書き込む必要があります。 を呼び出 CWinApp::SetRegistryKeyしてレジストリに情報を書き込みます。 を呼び出 SaveBarStateして INI ファイルに情報を書き込みます。

CFrameWnd::LoadFrame

リソース情報からフレーム ウィンドウを動的に作成する呼び出し。

virtual BOOL LoadFrame(
    UINT nIDResource,
    DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
    CWnd* pParentWnd = NULL,
    CCreateContext* pContext = NULL);

パラメーター

nIDResource
フレーム ウィンドウに関連付けられている共有リソースの ID。

dwDefaultStyle
フレームの スタイル。 タイトル バーに FWS_ADDTOTITLE ウィンドウで表されるドキュメントの名前を自動的に表示する場合は、スタイルを含めます。

pParentWnd
フレームの親へのポインター。

pContext
CCreateContext 構造体へのポインター。 このパラメーターは、NULL に設定できます。

解説

2 つの手順でオブジェクトを CFrameWnd 構築します。 まず、オブジェクトを構築するコンストラクターを CFrameWnd 呼び出し、次に呼び出 LoadFrameします。これにより、Windows フレーム ウィンドウと関連するリソースが読み込まれ、フレーム ウィンドウが CFrameWnd オブジェクトにアタッチされます。 このパラメーターは nIDResource 、フレーム ウィンドウのタイトルのメニュー、アクセラレータ テーブル、アイコン、および文字列リソースを指定します。

Createフレーム ウィンドウのすべての作成パラメーターを指定する場合ではなくLoadFrame、メンバー関数を使用します。

フレームワークは、ドキュメント テンプレート オブジェクトを使用してフレーム ウィンドウを作成するときに呼び出 LoadFrame します。

フレームワークでは、引数を pContext 使用して、フレーム ウィンドウに接続するオブジェクト (含まれているビュー オブジェクトを含む) を指定します。 呼び出LoadFrameすときにpContext引数をNULL設定できます。

CFrameWnd::m_bAutoMenuEnable

このデータ メンバーが有効になっている場合 (既定)、ユーザーがメニューをプルダウンすると、存在 ON_UPDATE_COMMAND_UI しないメニュー項目または ON_COMMAND ハンドラーが自動的に無効になります。

BOOL m_bAutoMenuEnable;

解説

ハンドラーはある ON_COMMAND がハンドラーがない ON_UPDATE_COMMAND_UI メニュー項目は自動的に有効になります。

このデータ メンバーを設定すると、ツール バー ボタンが有効になっているのと同じ方法でメニュー項目が自動的に有効になります。

Note

m_bAutoMenuEnable は、トップレベルのメニュー項目には影響しません。

このデータ メンバーは、現在の選択内容に基づいて省略可能なコマンドの実装を簡略化し、メニュー項目を有効または無効にするためのハンドラーを記述 ON_UPDATE_COMMAND_UI する必要性を軽減します。

// CMainFrame is application-defined object of type CFrameWnd
CMainFrame::CMainFrame()
    : m_hDrawMenu(NULL), m_hDrawAccel(NULL), m_bCheck(false), m_nWindowTimer(0), m_nCallbackTimer(0)
{
   // Set to FALSE so no ON_UPDATE_COMMAND_UI
   // or ON_COMMAND handlers are needed, and
   // CMenu::EnableMenuItem() will work as expected.
   m_bAutoMenuEnable = FALSE;
}

CFrameWnd::NegotiateBorderSpace

このメンバー関数を呼び出して、OLE インプレース アクティブ化中にフレーム ウィンドウ内の境界線スペースをネゴシエートします。

virtual BOOL NegotiateBorderSpace(
    UINT nBorderCmd,
    LPRECT lpRectBorder);

パラメーター

nBorderCmd
次のいずれかの値が enum BorderCmd含まれています。

  • borderGet = 1

  • borderRequest = 2

  • borderSet = 3

lpRectBorder
境界線の座標をRECTCRect指定する構造体またはオブジェクトへのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバー関数は、 CFrameWnd OLE 罫線スペース ネゴシエーションの実装です。

CFrameWnd::OnBarCheck

指定したコントロール バーでアクションが実行されるたびに呼び出されます。

afx_msg BOOL OnBarCheck(UINT nID);

パラメーター

nID
表示されているコントロール バーの ID。

戻り値

コントロール バーが存在する場合は 0 以外。それ以外の場合は 0。

CFrameWnd::OnContextHelp

インプレースアイテムの Shift + F1 ヘルプを処理します。

afx_msg void OnContextHelp();

解説

状況依存のヘルプを有効にするには、次を追加する必要があります。

ON_COMMAND(ID_CONTEXT_HELP, &CMainFrame::OnContextHelp)

ステートメントを CFrameWnd クラス メッセージ マップに追加し、アクセラレータ テーブル エントリ (通常は Shift + F1) を追加して、このメンバー関数を有効にします。

アプリケーションが OLE コンテナーの場合は、 OnContextHelp フレーム ウィンドウ オブジェクト内に含まれるすべてのインプレース項目をヘルプ モードにします。 カーソルが矢印と疑問符に変わり、ユーザーはマウス ポインターを移動し、マウスの左ボタンを押してダイアログ ボックス、ウィンドウ、メニュー、またはコマンド ボタンを選択できます。 このメンバー関数は、カーソルの下にあるオブジェクトのヘルプ コンテキストを使用して Windows 関数 WinHelp を呼び出します。

CFrameWnd::OnCreateClient

の実行中 OnCreateにフレームワークによって呼び出されます。

virtual BOOL OnCreateClient(
    LPCREATESTRUCT lpcs,
    CCreateContext* pContext);

パラメーター

lpcs
Windows CREATESTRUCT 構造体へのポインター。

pContext
CCreateContext 構造体へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この関数は呼び出しません。

この関数の既定の実装では、可能であれば CView 、指定された情報からオブジェクトが作成されます pContext

オブジェクトに渡された値をオーバーライドしたり、フレーム ウィンドウの CCreateContext メイン クライアント領域内のコントロールの作成方法を変更したりするには、この関数をオーバーライドします。 オーバーライドできるメンバーについては CCreateContext 、クラスで CCreateContext 説明します。

Note

構造体で CREATESTRUCT 渡された値は置き換えないでください。 これらは情報提供のみを目的としています。 たとえば、最初のウィンドウの四角形をオーバーライドする場合は、メンバー関数PreCreateWindowをオーバーライドしますCWnd

CFrameWnd::OnHideMenuBar

この関数は、システムが現在の MFC アプリケーションのメニュー バーを非表示にしようとしているときに呼び出されます。

virtual void OnHideMenuBar();

解説

このイベント ハンドラーを使用すると、システムがメニューを非表示にしようとしているときに、アプリケーションでカスタム アクションを実行できます。 メニューが非表示にならないようにすることはできませんが、たとえば、他のメソッドを呼び出してメニューのスタイルや状態を取得できます。

CFrameWnd::OnSetPreviewMode

印刷プレビュー モードの内外にアプリケーションのメイン フレーム ウィンドウを設定するには、このメンバー関数を呼び出します。

virtual void OnSetPreviewMode(
    BOOL bPreview,
    CPrintPreviewState* pState);

パラメーター

bPreview
アプリケーションを印刷プレビュー モードにするかどうかを指定します。 プレビュー モードを TRUE 取り消すには、 FALSE 印刷プレビューに配置するように設定します。

pState
CPrintPreviewState 構造体へのポインター。

解説

既定の実装では、すべての標準ツール バーが無効になり、メイン メニューと メイン クライアント ウィンドウが非表示になります。 これにより、MDI フレーム ウィンドウが一時的な SDI フレーム ウィンドウに変わります。

印刷プレビュー中にコントロール バーやその他のフレーム ウィンドウ パーツの非表示と表示をカスタマイズするには、このメンバー関数をオーバーライドします。 オーバーライドされたバージョン内から基底クラスの実装を呼び出します。

CFrameWnd::OnShowMenuBar

この関数は、システムが現在の MFC アプリケーションでメニュー バーを表示しようとしているときに呼び出されます。

virtual void OnShowMenuBar();

解説

このイベント ハンドラーを使用すると、メニューが表示されようとしているときに、アプリケーションでカスタム アクションを実行できます。 メニューが表示されないようにすることはできませんが、たとえば、他のメソッドを呼び出してメニューのスタイルや状態を取得できます。

CFrameWnd::OnUpdateControlBarMenu

関連付けられたメニューが更新されたときにフレームワークによって呼び出されます。

afx_msg void OnUpdateControlBarMenu(CCmdUI* pCmdUI);

パラメーター

pCmdUI
更新コマンドを CCmdUI 生成したメニューを表すオブジェクトへのポインター。 更新ハンドラーは、オブジェクトの Enable メンバー関数を CCmdUI 呼び出して pCmdUI 、ユーザー インターフェイスを更新します。

CFrameWnd::RecalcLayout

標準コントロール バーのオン/オフの切り替え時、またはフレーム ウィンドウのサイズ変更時にフレームワークによって呼び出されます。

virtual void RecalcLayout(BOOL bNotify = TRUE);

パラメーター

bNotify
フレーム ウィンドウのアクティブなインプレース項目がレイアウト変更の通知を受け取るかどうかを決定します。 場合 TRUEは、アイテムに通知されます。それ以外の場合 FALSEは .

解説

このメンバー関数の既定の実装では、メンバー関数RepositionBarsCWnd呼び出して、フレーム内のすべてのコントロール バーと、メイン クライアント ウィンドウ (通常は a CView またはMDICLIENT) の位置を変更します。

フレーム ウィンドウのレイアウトが変更された後にコントロール バーの外観と動作を制御するには、このメンバー関数をオーバーライドします。 たとえば、コントロール バーをオンまたはオフにしたり、別のコントロール バーを追加したりするときに呼び出します。

CFrameWnd::rectDefault

Windows がウィンドウの初期サイズと位置を選択できるようにウィンドウを作成するときに、この静的 CRect 変数をパラメーターとして渡します。

static AFX_DATA const CRect rectDefault;

CFrameWnd::SaveBarState

フレーム ウィンドウが所有する各コントロール バーに関する情報を格納するには、この関数を呼び出します。

void SaveBarState(LPCTSTR lpszProfileName) const;

パラメーター

lpszProfileName
初期化ファイル内のセクションの名前、または状態情報が格納されている Windows レジストリのキー。

解説

この情報は、初期化ファイル LoadBarStateから読み取ることができます。 格納される情報には、可視性、水平方向/垂直方向、ドッキング状態、コントロール バーの位置が含まれます。

CFrameWnd::SetActivePreviewView

指定したビューをリッチ プレビューのアクティブ ビューに指定します。

void SetActivePreviewView(CView* pViewNew);

パラメーター

pViewNew
アクティブ化するビューへのポインター。

解説

CFrameWnd::SetActiveView

アクティブなビューを設定するには、このメンバー関数を呼び出します。

void SetActiveView(
    CView* pViewNew,
    BOOL bNotify = TRUE);

パラメーター

pViewNew
オブジェクトへの CView ポインターを指定するか NULL 、アクティブなビューを指定しません。

bNotify
アクティブ化をビューに通知するかどうかを指定します。 新しいビューに対して呼び出される場合 TRUEは 、 OnActivateView それ以外の場合 FALSEは呼び出されます。

解説

フレームワークは、ユーザーがフレーム ウィンドウ内のビューにフォーカスを変更すると、この関数を自動的に呼び出します。 明示的に呼び出 SetActiveView して、指定したビューにフォーカスを変更できます。

CFrameWnd::SetDockState

オブジェクトに格納されている CDockState 状態情報をフレーム ウィンドウのコントロール バーに適用するには、このメンバー関数を呼び出します。

void SetDockState(const CDockState& state);

パラメーター

state
格納された状態をフレーム ウィンドウのコントロール バーに適用します。

解説

コントロール バーの以前の状態を復元するには、格納されている状態を CDockState::LoadState 読み込むか Serialize、フレーム ウィンドウのコントロール バーに適用するために使用 SetDockState します。 以前の状態は、次の値を使用してオブジェクトに CDockState 格納されます。 GetDockState

CFrameWnd::SetMenuBarState

現在の MFC アプリケーションのメニューの表示状態を非表示または表示に設定します。

virtual BOOL SetMenuBarState(DWORD nState);

パラメーター

nState
[in]メニューを表示または非表示にするかどうかを指定します。 パラメーターには nState 、次の値を指定できます。

  • AFX_MBS_VISIBLE (0x01) - メニューが非表示の場合は表示されますが、表示されている場合は効果がありません。
  • AFX_MBS_HIDDEN (0x02) - メニューが表示されている場合は非表示になりますが、非表示の場合は効果がありません。

戻り値

TRUEこのメソッドがメニューの状態を正常に変更した場合。それ以外の場合は . FALSE

解説

ランタイム エラーが発生した場合、このメソッドはデバッグ モードでアサートし、クラスから派生した例外を CException 発生させます。

CFrameWnd::SetMenuBarVisibility

現在の MFC アプリケーションのメニューの既定の動作を非表示または表示に設定します。

virtual void SetMenuBarVisibility(DWORD nStyle);

パラメーター

nStyle
[in]メニューが既定で非表示になっているか、表示されていてフォーカスがあるかを指定します。 パラメーターには nStyle 、次の値を指定できます。

  • AFX_MBV_KEEPVISIBLE (0x01) - メニューは常に表示され、既定ではフォーカスがありません。

  • AFX_MBV_DISPLAYONFOCUS (0x02) - メニューは既定で非表示になっています。 メニューが非表示の場合は、Alt キーを押してメニューを表示し、フォーカスを設定します。 メニューが表示されている場合は、Alt キーまたは Esc キーを押してメニューを非表示にします。

  • AFX_MBV_DISPLAYONFOCUS | AFX_MBV_DISPLAYONF10 (0x06) - メニューは既定で非表示になっています。 メニューが非表示の場合は、F10 キーを押してメニューを表示し、フォーカスを設定します。 メニューが表示されている場合は、F10 キーを押してメニューのフォーカスのオンとオフを切り替えます。 メニューは、Alt キーまたは Esc キーを押して非表示にするまで表示されます。

解説

パラメーターの nStyle 値が無効な場合、このメソッドはデバッグ モードでアサートし、リリース モードで発生します CInvalidArgException 。 他のランタイム エラーが発生した場合、このメソッドはデバッグ モードでアサートし、クラスから派生した例外を CException 発生させます。

このメソッドは、Windows Vista 以降用に記述されたアプリケーションのメニューの状態に影響します。

CFrameWnd::SetMessageText

ID が 0 のステータス バー ウィンドウに文字列を配置するには、この関数を呼び出します。

void SetMessageText(LPCTSTR lpszText);
void SetMessageText(UINT nID);

パラメーター

lpszText
ステータス バーに配置する文字列をポイントします。

nID
ステータス バーに配置する文字列の文字列リソース ID。

解説

これは通常、ステータス バーの左端と最も長いウィンドウです。

CFrameWnd::SetProgressBarPosition

タスク バーに表示される Windows 7 進行状況バーの現在位置を設定します。

void SetProgressBarPosition(int nProgressPos);

パラメーター

nProgressPos
設定する位置を指定します。 この値は、次の値で SetProgressBarRange設定された範囲内である必要があります。

解説

CFrameWnd::SetProgressBarRange

タスク バーに表示される Windows 7 進行状況バーの範囲を設定します。

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

パラメーター

nRangeMin
最小値。

nRangeMax
最大値。

解説

CFrameWnd::SetProgressBarState

タスク バー ボタンに表示される進行状況インジケーターの種類と状態を設定します。

void SetProgressBarState(TBPFLAG tbpFlags);

パラメーター

tbpFlags
進行状況ボタンの現在の状態を制御するフラグ。 すべての状態が相互に排他的であるため、次のいずれかのフラグのみを指定します: TBPF_NOPROGRESS, , TBPF_NORMALTBPF_INDETERMINATE, TBPF_ERROR. TBPF_PAUSED

解説

CFrameWnd::SetTaskbarOverlayIcon

過負荷です。 オーバーレイをタスク バー ボタンに適用して、アプリケーションの状態を示すか、ユーザーに通知します。

BOOL SetTaskbarOverlayIcon(
    UINT nIDResource,
    LPCTSTR lpcszDescr);

BOOL SetTaskbarOverlayIcon(
    HICON hIcon,
    LPCTSTR lpcszDescr);

パラメーター

nIDResource
オーバーレイとして使用するアイコンのリソース ID を指定します。 詳細については、説明を hIcon 参照してください。

lpcszDescr
アクセシビリティを目的として、オーバーレイによって伝達される情報の代替テキスト バージョンを提供する文字列へのポインター。

hIcon
オーバーレイとして使用するアイコンのハンドル。 これは、96 ドット/インチ (dpi) で 16 x 16 ピクセルを測定する小さなアイコンである必要があります。 オーバーレイ アイコンがタスク バー ボタンに既に適用されている場合は、その既存のオーバーレイが置き換えられます。 この値は、NULL の場合もあります。 値の処理方法は、 NULL タスク バー ボタンが 1 つのウィンドウまたはウィンドウのグループを表しているかどうかによって異なります。 不要になった場合は、呼び出し元のアプリケーションが解放 hIcon する必要があります。

戻り値

TRUE 成功した場合。 FALSE OS バージョンが Windows 7 より小さい場合、またはアイコンの設定中にエラーが発生した場合。

解説

CFrameWnd::SetTitle

ウィンドウ オブジェクトのタイトルを設定します。

void SetTitle(LPCTSTR lpszTitle);

パラメーター

lpszTitle
ウィンドウ オブジェクトのタイトルを含む文字列へのポインター。

CFrameWnd::ShowControlBar

コントロール バーを表示または非表示にするには、このメンバー関数を呼び出します。

void ShowControlBar(
    CControlBar* pBar,
    BOOL bShow,
    BOOL bDelay);

パラメーター

pBar
表示または非表示にするコントロール バーへのポインター。

bShow
の場合 TRUEは、コントロール バーを表示することを指定します。 の場合 FALSEは、コントロール バーを非表示にすることを指定します。

bDelay
場合 TRUEは、コントロール バーを表示する遅延。 の場合 FALSEは、コントロール バーをすぐに表示します。

CFrameWnd::ShowOwnedWindows

オブジェクトの子孫であるすべてのウィンドウを表示するには、このメンバー関数を CFrameWnd 呼び出します。

void ShowOwnedWindows(BOOL bShow);

パラメーター

bShow
所有するウィンドウを表示するか非表示にするかを指定します。

関連項目

CWnd クラス
階層図
CWnd クラス
CMDIFrameWnd クラス
CMDIChildWnd クラス
CView クラス
CDocTemplate クラス
CRuntimeClass 構造体