共用方式為


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 的詳細資訊,請參閱 控制項 和使用 CHotKeyCtrl

繼承階層架構

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 中的通用控制項樣式

矩形
指定熱鍵控制項的大小和位置。 它可以是 CRect 物件或 RECT 結構

pParentWnd
指定經常性鍵控制項的父視窗,通常是 CDialog 。 它不得為 Null。

nID
指定熱鍵控制項的識別碼。

傳回值

非零,如果初始化成功則為 ;否則為 0。

備註

您會在兩個步驟中建構 CHotKeyCtrl 物件。 首先,呼叫 建構函式,然後呼叫 Create ,這會建立熱鍵控制項並將它附加至 CHotKeyCtrl 物件。

如果您想要搭配控制項使用延伸視窗樣式,請呼叫 CreateEx 而非 Create

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 中的通用控制項樣式

矩形
RECT 結構的參考 ,描述要建立之視窗的大小和位置,在 pParentWnd 的用戶端座標中

pParentWnd
控制項父系之視窗的指標。

nID
控制項的子視窗識別碼。

傳回值

如果成功則為非零;否則為 0。

備註

使用 CreateEx 而不是 Create 來套用延伸的 Windows 樣式,由 Windows 擴充樣式前文 WS_EX_所指定。

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。 低序字組的低序位元組包含虛擬索引鍵程式碼、低序字的高序位元組包含修飾詞旗標,而高序字則為零。

備註

虛擬按鍵程式碼和修飾詞按鍵會一起定義鍵盤快速鍵。

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

  • HKCOMB_SA SHIFT+ALT

  • HKCOMB_SC SHIFT+CTRL

  • HKCOMB_SCA SHIFT+CTRL+ALT

wModifiers
旗標陣列,指定使用者輸入無效組合時要使用的按鍵組合。 如需修飾詞旗標的詳細資訊,請參閱 GetHotKey

備註

當使用者輸入不正確按鍵組合時,如 wInvalidComb 中指定的 旗標所定義,系統會使用 OR 運算子來結合使用者輸入的索引鍵與 wModifiers 中指定的 旗標。 產生的按鍵組合會轉換成字串,然後顯示在熱鍵控制項中。

另請參閱

CWnd 類別
階層架構圖表