CCmdUI クラス
-derived クラスの ON_UPDATE_COMMAND_UI
ハンドラー内 CCmdTarget
でのみ使用されます。
構文
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 ハンドラーを実装することによってこの情報を提供します。 アプリケーションのコマンド ユーザー インターフェイス オブジェクトごとに、クラス ウィザードまたはプロパティ ウィンドウ (クラス ビュー) を使用して、各ハンドラーのメッセージ マップ エントリと関数プロトタイプを作成します。
メニューがプルダウンされると、フレームワークは各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();
解説
これは、FAL Standard Edition を返すON_COMMAND_EX ハンドラーと組み合わせて使用する必要がある高度なメンバー関数です。 詳細については、テクニカル ノート 6 を参照してください。
CCmdUI::Enable
このメンバー関数を呼び出して、このコマンドのユーザー インターフェイス項目を有効または無効にします。
virtual void Enable(BOOL bOn = TRUE);
パラメーター
ボン
アイテムを有効にする場合は TRUE、無効にするには FAL Standard Edition。
例
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
オブジェクトによってCMenu
CCmdUI
表されるメニューへのポインター (型)。
CMenu* m_pMenu;
解説
項目がメニューでない場合は NULL。
CCmdUI::m_pSubMenu
オブジェクトによって CMenu
表される CCmdUI
、含まれているサブメニューへのポインター (型)。
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、unチェックs、1 の場合は チェック;、2 の場合は不確定を設定します。
解説
このメンバー関数は、メニュー項目とツール バー ボタンに対して機能します。 不確定な状態は、ツール バー ボタンにのみ適用されます。
CCmdUI::SetRadio
このメンバー関数を呼び出して、このコマンドのユーザー インターフェイス項目を適切なチェック状態に設定します。
virtual void SetRadio(BOOL bOn = TRUE);
パラメーター
ボン
項目を有効にする場合は TRUE。それ以外の場合は FAL Standard Edition。
解説
このメンバー関数は、無線グループの一部として機能するユーザー インターフェイス項目で動作する点を除き、同様 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);
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示