创建热键控制

【勇芳软件工作室】汉化HomePreviousNext

以下功能创建热键控件,使用HKM_SETRULESHKM_SETHOTKEY消息进行初始化,并返回控件的句柄。此热键控件不允许用户选择作为单个未修改密钥的热键,也不允许用户仅选择SHIFT和密钥。(这些规则有效地防止用户在输入文本时选择可能意外输入的热键。)

// InitializeHotkey - 创建热键控件并设置规则

//及其默认设置。

//返回热键控件的句柄。

// hwndDlg - 父窗口的句柄(对话框)

//

//全局变量

// g_hinst - 应用程序实例的句柄

extern HINSTANCE g_hinst;

HWND WINAPI InitializeHotkey(HWND hwndDlg)

{

//确保加载公共控制DLL。

InitCommonControls();

hwndHot = CreateWindowEx(

0, //没有扩展样式

HOTKEY_CLASS, // 班级名称

"", //无标题(标题)

WS_CHILD | WS_VISIBLE, //风格

10, 10, //位置

200, 20, // size

hwndDlg, //父窗口

NULL, //使用类菜单

g_hinst, //实例

NULL //没有WM_CREATE参数

);

SetFocus(hwndHot);

//设置无效键组合的规则。如果用户

//不提供修饰符键,使用ALT作为修饰符。

//如果用户提供SHIFT作为修饰符键,请使用

// SHIFT + ALT代替。

SendMessage函数(hwndHot,HKM_SETRULES。

(WPARAM) HKCOMB_NONE | HKCOMB_S, //无效组合键

MAKELPARAM(HOTKEYF_ALT, 0)); //将ALT添加到无效条目

//将CTRL + ALT + A设置为此窗口的默认热键。

// 0x41是'A'的虚拟键代码。

SendMessage函数(hwndHot,HKM_SETHOTKEY。

MAKEWORD(0x41, HOTKEYF_CONTROL | HOTKEYF_ALT), 0);

return hwndHot;

}