delphi 怎样设置组合键
来源:百度知道 编辑:UC知道 时间:2024/05/23 14:55:57
我要编程实现 ctrl+回车 触发一个事件怎么实现?
比如
像QQ那样 按ctrl+回车就发送消息一样./?
比如
像QQ那样 按ctrl+回车就发送消息一样./?
这个很简单呀。
问题是你要全局的.还是要系统级的,还是要局部的。
如果是全局和局部的,那么在主窗体上(或其他控件上)(form)的KeyPress等属性上监控就行了..
如果是系统级的,那么需要API了.
简单代码:
用到3个API函数
BOOL RegisterHotKey(
HWND hWnd, //响应该热键的窗口句柄
Int id, //该热键的唯一标识
UINT fsModifiers, //该热键的辅助按键
UINT vk //该热键的键值
);
为了得到唯一标识,我们还将用到另一个API函数
ATOM GlobalAddAtom(
LPCTSTR lpString //自己设定的一个字符串
);
因为我们还要在程序退出的时候,消除这个热键, 所以需要声明一个全局变量:
HotKeyId: Integer;
第一步:
在窗口的create事件中,加入以下代码
HotKeyId := GlobalAddAtom('MyHotKey') - $C000;
注: HotKeyId的合法取之范围是0x0000到0xBFFF之间, GlobalAddAtom函数得到的值
在0xC000到0xFFFF之间,所以减掉0xC000来满足调用要求。
第二步:
在上面的代码下面加入:
RegisterHotKey(Handle, hotkeyid, MOD_ALT, VK_F8);
热键的辅助按键包括Mod_Ctrl 、Mod_Alt、Mod_Shift,对于Windows兼容键盘还支持Windows
键,即其键面上有Windows标志的那个键,其值为Mod_win。
上面 的