CHotKeyCtrl クラス
Windows コモン ホット キー コントロールの機能が用意されています。
構文
class CHotKeyCtrl : public CWnd
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CHotKeyCtrl::CHotKeyCtrl | CHotKeyCtrl オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CHotKeyCtrl::Create | ホット キー コントロールを作成し、 CHotKeyCtrl オブジェクトにアタッチします。 |
CHotKeyCtrl::CreateEx | 指定した Windows 拡張スタイルを使用してホット キー コントロールを作成し、 CHotKeyCtrl オブジェクトにアタッチします。 |
CHotKeyCtrl::GetHotKey | ホット キー コントロールからホット キーの仮想キー コードと修飾子フラグを取得します。 |
CHotKeyCtrl::GetHotKeyName | ホット キーに割り当てられたローカル文字セット内のキー名を取得します。 |
CHotKeyCtrl::GetKeyName | 指定した仮想キー コードに割り当てられた、ローカル文字セット内のキー名を取得します。 |
CHotKeyCtrl::SetHotKey | ホット キー コントロールのホット キーの組み合わせを設定します。 |
CHotKeyCtrl::SetRules | ホット キー コントロールの無効な組み合わせと、既定の修飾子の組み合わせを定義します。 |
解説
"ホット キー コントロール" は、ユーザーがホット キーを作成できるようにするウィンドウです。 "ホット キー" は、ユーザーがすばやくアクションを実行するために押すことができるキーの組み合わせです。 (たとえば、ユーザーは、特定のウィンドウをアクティブにして Z オーダーの先頭に移動するホット キーを作成できます)。ホット キー コントロールは、ユーザーの選択肢を表示し、ユーザーが有効なキーの組み合わせを選択することを確認します。
このコントロール (したがって、 CHotKeyCtrl
クラス) は、Windows 95/98 および Windows NT バージョン 3.51 以降で実行されているプログラムでのみ使用できます。
ユーザーがキーの組み合わせを選択すると、アプリケーションはコントロールから指定されたキーの組み合わせを取得し、WM_SETHOTKEY メッセージを使用してシステムでホット キーを設定できます。 その後、ユーザーがホット キーを押すたびに、システムの任意の部分から、WM_SETHOTKEY メッセージで指定されたウィンドウは、SC_HOTKEYを指定するWM_SYSCOMMAND メッセージを受け取ります。 このメッセージは、それを受け取るウィンドウをアクティブにします。 ホット キーは、WM_SETHOTKEY を呼び出し たアプリケーションが終了するまで有効です。
このメカニズムは、WM_HOTKEY メッセージおよび Windows RegisterHotKey および UnregisterHotKey 関数に依存するホット キーのサポートとは異なります。
CHotKeyCtrl
の使用方法の詳細については、「ControlsとCHotKeyCtrl の使用を参照してください。
継承階層
CHotKeyCtrl
要件
ヘッダー: afxcmn.h
CHotKeyCtrl::CHotKeyCtrl
CHotKeyCtrl
オブジェクトを構築します。
CHotKeyCtrl();
CHotKeyCtrl::Create
ホット キー コントロールを作成し、 CHotKeyCtrl
オブジェクトにアタッチします。
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
パラメーター
dwStyle
ホット キー コントロールのスタイルを指定します。 コントロール スタイルの任意の組み合わせを適用します。 詳細については、Windows SDK の Common コントロール スタイル を参照してください。
rect
ホット キー コントロールのサイズと位置を指定します。 CRect オブジェクトまたはRECT 構造体のいずれかを指定できます。
pParentWnd
ホット キー コントロールの親ウィンドウ (通常は CDialog を指定します。 NULL は指定できません。
nID
ホット キー コントロールの ID を指定します。
戻り値
初期化が成功した場合は 0 以外。それ以外の場合は 0。
解説
CHotKeyCtrl
オブジェクトは、2 つの手順で作成します。 まず、コンストラクターを呼び出してから Create
を呼び出します。これにより、ホット キー コントロールが作成され、 CHotKeyCtrl
オブジェクトにアタッチされます。
コントロールで拡張ウィンドウ スタイルを使用する場合は、Create
の代わりに CreateEx を呼び出します。
CHotKeyCtrl::CreateEx
この関数を呼び出してコントロール (子ウィンドウ) を作成し、 CHotKeyCtrl
オブジェクトに関連付けます。
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
パラメーター
dwExStyle
作成するコントロールの拡張スタイルを指定します。 拡張 Windows スタイルの一覧については、Windows SDK の CreateWindowEx の dwExStyle パラメーターを参照してください。
dwStyle
ホット キー コントロールのスタイルを指定します。 コントロール スタイルの任意の組み合わせを適用します。 詳細については、Windows SDK の「 Common コントロール スタイル 」を参照してください。
rect
作成するウィンドウのサイズと位置を記述する RECT 構造体への参照 ( pParentWnd のクライアント座標)。
pParentWnd
コントロールの親であるウィンドウへのポインター。
nID
コントロールの子ウィンドウ ID。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
Create の代わりにCreateEx
を使用して、Windows 拡張スタイルの前書きWS_EX_で指定された拡張 Windows スタイルを適用します。
CHotKeyCtrl::GetHotKey
ホット キー コントロールから、キーボード ショートカットの仮想キー コードと修飾子フラグを取得します。
DWORD GetHotKey() const;
void GetHotKey(
WORD& wVirtualKeyCode,
WORD& wModifiers) const;
パラメーター
wVirtualKeyCode
[out]キーボード ショートカットの仮想キー コード。 標準の仮想キー コードの一覧については、Winuser.h に関するページを参照してください。
wModifiers
[out]キーボード ショートカットの修飾キーを示すフラグのビットごとの組み合わせ (OR)。
修飾子フラグは次のとおりです。
フラグ | 対応するキー |
---|---|
HOTKEYF_ALT | ALT キー |
HOTKEYF_CONTROL | Ctrl キー |
HOTKEYF_EXT | 拡張キー |
HOTKEYF_SHIFT | Shift キー |
戻り値
オーバーロードされた最初のメソッドで、仮想キー コードと修飾子フラグを含む DWORD。 下位ワードの下位バイトには仮想キー コードが含まれており、下位ワードの上位バイトには修飾子フラグが含まれており、上位ワードは 0 です。
解説
仮想キー コードと修飾キーの組み合わせによって、キーボード ショートカットが定義されます。
CHotKeyCtrl::GetHotKeyName
このメンバー関数を呼び出して、ホット キーのローカライズされた名前を取得します。
CString GetHotKeyName() const;
戻り値
現在選択されているホット キーのローカライズされた名前。 ホット キーが選択されていない場合、 GetHotKeyName
は空の文字列を返します。
解説
このメンバー関数が返す名前は、キーボード ドライバーから取得されます。 ローカライズされていないキーボード ドライバーは、ローカライズされたバージョンの Windows にインストールできます。その逆も同様です。
CHotKeyCtrl::GetKeyName
このメンバー関数を呼び出して、指定された仮想キー コードに割り当てられたキーのローカライズされた名前を取得します。
static CString GetKeyName(
UINT vk,
BOOL fExtended);
パラメーター
vk
仮想キー コード。
fExtended
仮想キー コードが拡張キーの場合は TRUE。それ以外の場合は FALSE。
戻り値
vk パラメーターで指定されたキーのローカライズされた名前。 キーにマップされた名前がない場合、 GetKeyName
は空の文字列を返します。
解説
この関数が返すキー名はキーボード ドライバーから取得されるため、ローカライズされていないキーボード ドライバーをローカライズされたバージョンの Windows にインストールできます。その逆も同様です。
例
CString str;
str = CHotKeyCtrl::GetKeyName(VK_CONTROL, FALSE);
// str is now "Ctrl", or the localized equivalent.
CHotKeyCtrl::SetHotKey
ホット キー コントロールのキーボード ショートカットを設定します。
void SetHotKey(
WORD wVirtualKeyCode,
WORD wModifiers);
パラメーター
wVirtualKeyCode
[in]キーボード ショートカットの仮想キー コード。 標準の仮想キー コードの一覧については、Winuser.h に関するページを参照してください。
wModifiers
[in]キーボード ショートカットの修飾キーを示すフラグのビットごとの組み合わせ (OR)。
修飾子フラグは次のとおりです。
フラグ | 対応するキー |
---|---|
HOTKEYF_ALT | ALT キー |
HOTKEYF_CONTROL | Ctrl キー |
HOTKEYF_EXT | 拡張キー |
HOTKEYF_SHIFT | Shift キー |
解説
仮想キー コードと修飾キーの組み合わせによって、キーボード ショートカットが定義されます。
CHotKeyCtrl::SetRules
この関数を呼び出して、ホット キー コントロールの無効な組み合わせと既定の修飾子の組み合わせを定義します。
void SetRules(
WORD wInvalidComb,
WORD wModifiers);
パラメーター
wInvalidComb
無効なキーの組み合わせを指定するフラグの配列。 次の値を組み合わせて使用できます。
HKCOMB_A ALT
HKCOMB_C CTRL
HKCOMB_CA Ctrl + Alt
変更されていないキーのHKCOMB_NONE
HKCOMB_S SHIFT
shift + Alt をHKCOMB_SAする
HKCOMB_SC Shift + Ctrl
HKCOMB_SCA Shift + Ctrl + Alt
wModifiers
ユーザーが無効な組み合わせを入力したときに使用するキーの組み合わせを指定するフラグの配列。 修飾子フラグの詳細については、「 GetHotKeyを参照してください。
解説
ユーザーが、 wInvalidComb で指定されたフラグで定義されている無効なキーの組み合わせを入力すると、システムは OR 演算子を使用して、ユーザーが入力したキーと、 wModifiers で指定されたフラグを組み合わせます。 結果のキーの組み合わせは文字列に変換され、ホット キー コントロールに表示されます。