次の方法で共有


ステータス バー ペインのテキストの更新

この技術情報では、 MFC ステータス バーのペインに表示されるテキストを変更する方法について説明します。ステータス バー ペイン CStatusBar —クラスのオブジェクト )が、複数の 「ペインを示します」。各ペインは情報を表示するために使用できるステータス バーの四角形領域です。たとえば、多くのアプリケーションは、右端のペインのキー、 NumLock キーやそのほかのキーの状態を表示します。アプリケーションは、頻繁に表示される、 「メッセージ ペインでは、左端のペイン (0)ペインの参考のテキストを」。たとえば、既定の MFC ステータス バーは、選択したメニュー項目をツールバー ボタンを現在説明する文字列を表示するためにメッセージのペインを使用します。ステータス バー の図は、アプリケーション ウィザードで作成された MFC アプリケーションのステータス バーを示します。

既定では、 MFC はペインを作成するときに CStatusBar のペインは有効にしません。ペインをアクティブにするには、ステータス バーの各ペインに ON_UPDATE_COMMAND_UI のマクロを使用し、ペインを更新します。ペインが WM_COMMAND のメッセージ (ツールバー ボタンのように見えます)を送信しないため、コードを手動で入力します。

たとえば、 1 つまでのペインにコマンド識別子として ID_INDICATOR_PAGE があり、そのドキュメントで現在のページ番号が含まれているとします。次の手順では、ステータス バーに新しいペインを作成する方法について説明します。

新しいペインを設定するには

  1. ペインのコマンド ID を定義します。

    表示 で、メニューのをクリックします Resource View。プロジェクト リソースを右クリックし、 Resource Symbolsをクリックします。リソース シンボル] ダイアログ ボックスで、 Newをクリックします。コマンド ID の名前を入力する: たとえば、 ID_INDICATOR_PAGE。値を ID に指定したり、リソース シンボル] ダイアログ ボックスに、提案された値を受け入れます。たとえば、 ID_INDICATOR_PAGEの場合、既定値をそのまま使用します。リソース シンボル] ダイアログ ボックスを閉じます。

  2. ペインに表示する既定の文字列を定義します。

    [リソース ビュー] を使用してアプリケーションのリソースの種類の一覧] ウィンドウのダブルクリック ストリング テーブル 。開いている ストリング テーブル のエディターで 挿入 のメニューから New String を選択します。文字列プロパティ ペインで、ペインのコマンド ID (たとえば、 ID_INDICATOR_PAGE)を選択し、 「ページ」などの既定の文字列値を入力します。文字列のエディターを閉じます。(既定の文字列がコンパイラ エラーを避ける必要があります)。

  3. indicators の配列にペインを追加します。

    ファイル MAINFRM.CPP では、 indicators の配列を探します。この配列リストは、順序でステータス バーのインジケーターすべての ID は、左から右へされます。配列の適切な位置に、 ID_INDICATOR_PAGEのために次に示すように、ペインのコマンド ID を入力する:

    static UINT indicators[] =
    {
       ID_SEPARATOR,           // status line indicator
       ID_INDICATOR_CAPS,
       ID_INDICATOR_NUM,
       ID_INDICATOR_SCRL,
       ID_INDICATOR_PAGE,
    };
    

ペインにテキストを表示する推奨方法は、ペインの更新ハンドラー関数のクラス CCmdUISetText のメンバー関数をダイヤルすることです。たとえば、その数の文字列バージョンにペインのテキストを設定する現在のページ番号および使用 SetText を含む整数変数 m_nPage をセットアップする場合があります。

[!メモ]

SetText の方法はお勧めします。CStatusBar のメンバー関数 SetPaneTextを呼び出すことによって多少低レベルでこのタスクを実行することができます。データとしても、更新ハンドラーが必要です。ペインのこのようなハンドラーがない場合、 MFC は自動的に内容を消去するペインを無効にします。

次の手順では、ペインにテキストを表示するために更新ハンドラー関数を使用する方法を示します。

ペインにテキストを表示します

  1. コマンドのコマンド更新ハンドラーを追加します。

    手動で ID_INDICATOR_PAGE のために次に示すように、ハンドラーのプロトタイプを追加します (で MAINFRM.H):

    afx_msg void OnUpdatePage(CCmdUI *pCmdUI);
    
  2. 適切な .cpp ファイルで、 ID_INDICATOR_PAGE のために次に示すように、ハンドラーの定義を追加します (MAINFRM.CPP):

    void CMainFrame::OnUpdatePage(CCmdUI *pCmdUI)
    {
        pCmdUI->Enable(); 
        CString strPage;
        strPage.Format(_T("Page %d"), m_nPage); 
        pCmdUI->SetText(strPage); 
    }
    

    このハンドラーの最後の 3 行はテキストを表示するコードです。

  3. 適切なメッセージ マップで、 ID_INDICATOR_PAGE のために次に示すように ON_UPDATE_COMMAND_UI のマクロを追加します (MAINFRM.CPP):

    ON_UPDATE_COMMAND_UI(ID_INDICATOR_PAGE, &CMainFrame::OnUpdatePage)
    

(クラス CMainFrame)の m_nPage のメンバー変数の値を定義した場合、この手法の原因同様に処理するアイドル状態のときにペインに表示されるページ番号。アプリケーションの更新そのほかのインジケーター。m_nPage が変更されると、は次のアイドル ループの中に変更します。

a9ys3wsb.collapse_all(ja-jp,VS.110).gifさらに詳しくは次のトピックをクリックしてください

参照

関連項目

CStatusBar クラス

概念

MFC でのステータス バーの実装