次の方法で共有


CCmdUI クラス

CCmdTarget派生クラスのON_UPDATE_COMMAND_UI ハンドラー内でのみ使用されます。

構文

class CCmdUI

メンバー

パブリック メソッド

名前 説明
CCmdUI::ContinueRouting 現在のメッセージをハンドラーのチェーンにルーティングし続けるよう、コマンド ルーティング メカニズムに指示します。
CCmdUI::Enable このコマンドのユーザー インターフェイス項目を有効または無効にします。
CCmdUI::SetCheck このコマンドのユーザー インターフェイス項目のチェック状態を設定します。
CCmdUI::SetRadio SetCheckメンバー関数と同様ですが、無線グループで動作します。
CCmdUI::SetText このコマンドのユーザー インターフェイス項目のテキストを設定します。

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

名前 説明
CCmdUI::m_nID ユーザー インターフェイス オブジェクトの ID。
CCmdUI::m_nIndex ユーザー インターフェイス オブジェクトのインデックス。
CCmdUI::m_pMenu CCmdUI オブジェクトによって表されるメニューをポイントします。
CCmdUI::m_pOther 通知を送信したウィンドウ オブジェクトをポイントします。
CCmdUI::m_pSubMenu CCmdUI オブジェクトによって表される、含まれているサブメニューをポイントします。

解説

CCmdUI には基底クラスはありません。

アプリケーションのユーザーがメニューをプルダウンすると、各メニュー項目は、それが有効または無効として表示される必要があるかどうかを認識する必要があります。 メニュー コマンドのターゲットは、ON_UPDATE_COMMAND_UI ハンドラーを実装することによってこの情報を提供します。 アプリケーションのコマンド ユーザー インターフェイス オブジェクトごとに、 Class ウィザード または Properties ウィンドウ ( クラス ビュー) を使用して、各ハンドラーのメッセージ マップ エントリと関数プロトタイプを作成します。

メニューがプルダウンされると、フレームワークは各ON_UPDATE_COMMAND_UI ハンドラーを検索して呼び出し、各ハンドラーはEnableCheckなどのメンバー関数CCmdUI呼び出し、フレームワークは各メニュー項目を適切に表示します。

メニュー項目は、 ON_UPDATE_COMMAND_UI ハンドラー内のコードを変更せずに、コントロール バー ボタンまたはその他のコマンド ユーザー インターフェイス オブジェクトに置き換えることができます。

次の表は、 CCmdUIのメンバー関数がさまざまなコマンド ユーザー インターフェイス項目に与える影響をまとめたものです。

ユーザー インターフェイス項目 有効にする SetCheck SetRadio SetText
メニュー項目 有効または無効にする チェック または オフ ドットを使用したチェック 項目のテキストを設定します
ツール バー ボタン 有効または無効にする 選択、選択解除、または不確定 SetCheck と同じ (該当なし)
ステータス バー ウィンドウ テキストを表示または非表示にする ポップアウトまたは標準の境界線を設定します SetCheck と同じ ウィンドウ のテキストを設定する
[標準] ボタン CDialogBar 有効または無効にする チェック ボックスまたはチェック ボックスのオフ SetCheck と同じ ボタンのテキストを設定します
通常のコントロール CDialogBar 有効または無効にする (該当なし) (該当なし) ウィンドウ テキストを設定する

このクラスの使用方法の詳細については、「 ユーザー インターフェイス オブジェクトを更新する方法を参照してください。

継承階層

CCmdUI

要件

ヘッダー: afxwin.h

CCmdUI::ContinueRouting

このメンバー関数を呼び出して、現在のメッセージをハンドラーのチェーンにルーティングし続けるよう、コマンド ルーティング メカニズムに指示します。

void ContinueRouting();

解説

これは、FALSE を返すON_COMMAND_EX ハンドラーと組み合わせて使用する必要がある高度なメンバー関数です。 詳細については、 テクニカル ノート 6 を参照してください。

CCmdUI::Enable

このメンバー関数を呼び出して、このコマンドのユーザー インターフェイス項目を有効または無効にします。

virtual void Enable(BOOL bOn = TRUE);

パラメーター

ボン
アイテムを有効にする場合は TRUE、無効にする場合は FALSE。

ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, &CMyDoc::OnUpdateFileSave)

 

void CMyDoc::OnUpdateFileSave(CCmdUI *pCmdUI)
{
   // Enable the menu item if the file has been modified.
   pCmdUI->Enable(m_bModified);
}

CCmdUI::m_nID

CCmdUI オブジェクトによって表されるメニュー項目、ツール バー ボタン、またはその他のユーザー インターフェイス オブジェクトの ID。

UINT m_nID;

CCmdUI::m_nIndex

メニュー項目、ツール バー ボタン、または CCmdUI オブジェクトによって表されるその他のユーザー インターフェイス オブジェクトのインデックス。

UINT m_nIndex;

CCmdUI::m_pMenu

CCmdUI オブジェクトによって表されるメニューへの (CMenu 型の) ポインター。

CMenu* m_pMenu;

解説

項目がメニューでない場合は NULL。

CCmdUI::m_pSubMenu

CCmdUI オブジェクトによって表される含まれるサブメニューへの (CMenu 型の) ポインター。

CMenu* m_pSubMenu;

解説

項目がメニューでない場合は NULL。 サブメニューがポップアップの場合、 m_nID には、ポップアップ メニューの最初の項目の ID が含まれます。 詳細については、 テクニカル ノート 21 を参照してください。

CCmdUI::m_pOther

通知を送信したウィンドウ オブジェクト (ツールやステータス バーなど) へのポインター ( CWnd型)。

CWnd* m_pOther;

解説

項目がメニューまたは CWnd 以外のオブジェクトの場合は NULL。

CCmdUI::SetCheck

このメンバー関数を呼び出して、このコマンドのユーザー インターフェイス項目を適切なチェック状態に設定します。

virtual void SetCheck(int nCheck = 1);

パラメーター

nCheck
設定するチェック状態を指定します。 0 の場合はオフにします。1 の場合はチェックします。2 の場合は不確定を設定します。

解説

このメンバー関数は、メニュー項目とツール バー ボタンに対して機能します。 不確定な状態は、ツール バー ボタンにのみ適用されます。

CCmdUI::SetRadio

このメンバー関数を呼び出して、このコマンドのユーザー インターフェイス項目を適切なチェック状態に設定します。

virtual void SetRadio(BOOL bOn = TRUE);

パラメーター

ボン
項目を有効にする場合は TRUE。それ以外の場合は FALSE。

解説

このメンバー関数は、無線グループの一部として機能するユーザー インターフェイス項目で動作することを除き、 SetCheckのように動作します。 項目自体が無線グループの動作を維持しない限り、グループ内の他の項目をオフにすることは自動的ではありません。

CCmdUI::SetText

このメンバー関数を呼び出して、このコマンドのユーザー インターフェイス項目のテキストを設定します。

virtual void SetText(LPCTSTR lpszText);

パラメーター

lpszText
テキスト文字列へのポインター。

void CMyRichEditView::OnUpdateLineNumber(CCmdUI *pCmdUI)
{
   int nLine = GetRichEditCtrl().LineFromChar(-1) + 1;

   CString string;
   string.Format(_T("Line %d"), nLine);
   pCmdUI->Enable(TRUE);
   pCmdUI->SetText(string);
}

関連項目

MFC サンプル MDI
階層図
CCmdTarget クラス