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。
繼承階層架構
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 中指定的旗標。 產生的按鍵組合會轉換成字串,然後顯示在熱鍵控件中。