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 ハンドラーを検索して呼び出し、各ハンドラーはEnable
やCheck
などのメンバー関数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);
}