分享方式:


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

rect
指定熱鍵控制件的大小和位置。 它可以是 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
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 換檔鍵

傳回值

在第一個多載方法中,包含虛擬密鑰程式代碼和修飾詞旗標的 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 換檔鍵

備註

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

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 類別
階層架構圖表