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
を呼び出す前に、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
によってOnVScroll
OnSetFocus
OnHScroll
処理されるメッセージを含む多くの一般的なフレーム通知メッセージは、フレーム ウィンドウによってCFrameWnd
現在アクティブなビューに委任されます。現在アクティブなビュー (または MDI フレームの場合は現在アクティブな MDI 子フレーム ウィンドウ) は、フレーム ウィンドウのキャプションを決定できます。 この機能は、フレーム ウィンドウのスタイル ビットを
FWS_ADDTOTITLE
オフにすることで無効にすることができます。フレーム ウィンドウは
CFrameWnd
、フレーム ウィンドウのクライアント領域内のコントロール バー、ビュー、およびその他の子ウィンドウの位置を管理します。 フレーム ウィンドウでは、ツール バーやその他のコントロール バー ボタンのアイドル時間更新も行われます。CFrameWnd
フレーム ウィンドウには、ツール バーとステータス バーをオンまたはオフに切り替えるコマンドの既定の実装もあります。フレーム ウィンドウは
CFrameWnd
、メインメニュー バーを管理します。 ポップアップ メニューが表示されると、フレーム ウィンドウはメカニズムをUPDATE_COMMAND_UI
使用して、有効、無効、またはチェックするメニュー項目を決定します。 ユーザーがメニュー項目を選択すると、フレーム ウィンドウはそのコマンドのメッセージ文字列でステータス バーを更新します。CFrameWnd
フレーム ウィンドウには、キーボード アクセラレータを自動的に変換するオプションのアクセラレータ テーブルがあります。CFrameWnd
フレーム ウィンドウには、状況依存のヘルプにLoadFrame
使用されるオプションのヘルプ ID が設定されています。 フレーム ウィンドウは、状況依存のヘルプ (Shift + F1) モードや印刷プレビュー モードなどの半モーダル状態のメイン オーケストレーターです。CFrameWnd
フレーム ウィンドウは、ファイル マネージャーからドラッグしてフレーム ウィンドウにドロップされたファイルを開きます。 ファイル拡張子が登録され、アプリケーションに関連付けられている場合、フレーム ウィンドウは、ユーザーがファイル マネージャーでデータ ファイルを開いたとき、または Windows 関数が呼び出されたときにShellExecute
発生する動的データ交換 (DDE) オープン要求に応答します。フレーム ウィンドウが メイン アプリケーション ウィンドウ (つまり、
CWinThread::m_pMainWnd
ユーザーがアプリケーションを閉じるとき) の場合、フレーム ウィンドウは変更されたドキュメント (forOnClose
およびOnQueryEndSession
) を保存するようにユーザーに求めます。フレーム ウィンドウが メイン アプリケーション ウィンドウの場合、フレーム ウィンドウは WinHelp を実行するためのコンテキストです。 フレーム ウィンドウを閉じると、このアプリケーションのヘルプが起動された場合はシャットダウン
WINHELP.EXE
します。
C++ delete
演算子を使用してフレーム ウィンドウを破棄しないでください。 CWnd::DestroyWindow
を代わりに使用します。 の実装PostNcDestroy
ではCFrameWnd
、ウィンドウが破棄されたときに C++ オブジェクトが削除されます。 ユーザーがフレーム ウィンドウを閉じると、既定 OnClose
のハンドラーが呼び出 DestroyWindow
します。
詳細についてはCFrameWnd
、「フレーム ウィンドウ」を参照してください。
継承階層
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::EnableDocking
CFrameWnd::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
。
解説
この関数は、NULL
MDI メイン フレーム ウィンドウ ( CMDIFrameWnd
) に対して呼び出されたときに返されます。 MDI アプリケーションでは、MDI メイン フレーム ウィンドウにビューが関連付けされていません。 代わりに、個々の子ウィンドウ ( CMDIChildWnd
) には、1 つ以上の関連付けられたビューがあります。 MDI アプリケーションのアクティブなビューは、最初にアクティブな MDI 子ウィンドウを見つけてから、その子ウィンドウのアクティブなビューを見つけることで取得できます。 アクティブな MDI 子ウィンドウは、関数MDIGetActive
GetActiveFrame
を呼び出すか、次に示すように見つけることができます。
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
を使用して新しいフレームを作成した後に呼び出しますIntitialUpdateFrame
Create
。
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
= 1borderRequest
= 2borderSet
= 3
lpRectBorder
境界線の座標をRECT
CRect
指定する構造体またはオブジェクトへのポインター。
戻り値
正常終了した場合は 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
は .
解説
このメンバー関数の既定の実装では、メンバー関数RepositionBars
をCWnd
呼び出して、フレーム内のすべてのコントロール バーと、メイン クライアント ウィンドウ (通常は 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_NORMAL
TBPF_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
構造体
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示