社区
C++ Builder
帖子详情
求救:组合快捷键问题!
zfmich
2000-06-02 01:52:00
各位大侠:
你们好!
我想通过在键盘钩子中设置快捷键,如果是组合键不知要如何实现,还望赐教,谢谢!
zfmich
...全文
170
7
打赏
收藏
求救:组合快捷键问题!
各位大侠: 你们好! 我想通过在键盘钩子中设置快捷键,如果是组合键不知要如何实现,还望赐教,谢谢! zfmich
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hhzh426
2000-07-14
打赏
举报
回复
关注!
zfmich
2000-06-13
打赏
举报
回复
谢谢各位!
Lin
2000-06-05
打赏
举报
回复
zfmich:
由于你的Mail Address不可用(好象Sina拒绝处理21CN的信件?),所以在此回复。
我个人的愚见,使用键盘钩子不太划算,一般来说,在系统注册一个HotKey就足够了,具体方法如下:
1、在Form的OnCreate事件中用API注册一个HotKey, RegisterHotKey声明如下:
BOOL RegisterHotKey(
HWND hWnd, // 窗口句柄
int id, // identifier of hot key
UINT fsModifiers, //Ctrl、Alt、Shift的组合
UINT vk // 虚键码
);
其中第二个参数可以用RegisterWindowMessage向系统注册一个独一无二的ID;
2、在Protected段声明一个消息处理过程:
protected
...
procedure WMHotKey(var AMsg: TMessage); message WM_HOTKEY;
...
实现如下:
...
procedure TfrmMain.WMHotKey(var AMsg: TMessage);
var wnd: HWND;
Msg: UINT;
begin
inherited;
if (LOWORD(AMsg.lParam) = ShiftKey) and //ShiftKey可以为Ctrl、Alt、Shift的组合
(HIWORD(AMsg.lParam) = HotKey) then //HotKey 为虚键码
begin
//在这里做你要做的事
end;
...
3、在Form的OnClose或者OnDestroy事件中注销Hotkey:
procedure TfrmMain.FormClose(Sender: TObject)
begin
..
UnregisterHotKey(Handle, uMsg); //此处的uMsg为注册HotKey时使用的id。
...
end;
4、祝你成功。欢迎来信探讨。
仁者见仁,智者见智,以上意见,只供参考。
zfmich
2000-06-05
打赏
举报
回复
没用过,能详细说一说吗?谢谢!
Lin
2000-06-04
打赏
举报
回复
我个人愚见,用键盘Hook不是一个明智的做法,应该注册一个HotKey,然后处理WM_HOTKEY消息即可。
zfmich
2000-06-02
打赏
举报
回复
谢谢!万分感谢!我去试试。:)
halfdream
2000-06-02
打赏
举报
回复
这是一个CTRL—D 的例子。本是DELPHI下的,我改了一下。
LRESULT _export _stdcall KeyboardHookHandler(int iCode, WPARAM wParam,
LPARAM lParam )
{
const _KeyPressMask = 0x80000000;
if(iCode < 0)return CallNextHookEx(hNextHookProc, iCode, wParam, lParam);
if (((lParam & _KeyPressMask) == 0)&&
(GetKeyState(VK_CONTROL) < 0)&&(wParam =='D'))
//GetKeyState为负表示按下。
{
WinExec("Notepad.exe", SW_NORMAL); //
return 1;
}
return 0;
}
Myeclipse常见
快捷键
及配置
0.
快捷键
================================================================================ 编辑: Ctrl+Shift+L 显示所有
快捷键
Ctrl+K 参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K 参照选中的词(Word)快速定位到上一个 Ctrl+O 快速显示Ou...
myeclipse
快捷键
================================================================================ 原文地址: 编辑: Ctrl+Shift+L 显示所有
快捷键
Ctrl+K 参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K 参照选中的词(Word)快速定位到上一个 Ctrl+O 快速显示O
myeclipse设置及
快捷键
myeclipse设置及
快捷键
MyEclipse
快捷键
[color=blue][b]MyEclipse
快捷键
[/b][/color] 自己设置myeclipse
快捷键
指导:[color=red]http://gongstring.iteye.com/blog/283437[/color] 原文链接 [size=medium][color=red] http://justjavac.iteye.com/blog/1651904[/colo...
MyEclipse
快捷键
及经验总结
Ctrl+Shift+L 显示所有
快捷键
Ctrl+K 参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K 参照选中的词(Word)快速定位到上一个 Ctrl+O 快速显示OutLine Ctrl+T 快速显示当前类的继承结构 Ctrl+Shift+X 把选中文本全部改为大写 Ctrl+Shift+Y
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章