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の使用方法の詳細については、「ControlsCHotKeyCtrl の使用を参照してください。

継承階層

CObject

CCmdTarget

CWnd

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 の CreateWindowExdwExStyle パラメーターを参照してください。

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 で指定されたフラグを組み合わせます。 結果のキーの組み合わせは文字列に変換され、ホット キー コントロールに表示されます。

関連項目

CWnd クラス
階層図