社区
Windows SDK/API
帖子详情
注册热键问题?
Percy_ButtonS
2004-03-29 12:55:48
哪为兄弟能告诉我,当我在窗体创建是RegisterHotKey后,我隐藏了窗体,我想用一个热键呼出(比如F12),不知下面的代码该怎么写?望高手指点!
最后是否 还要unRegisterHotKey?
...全文
76
2
打赏
收藏
注册热键问题?
哪为兄弟能告诉我,当我在窗体创建是RegisterHotKey后,我隐藏了窗体,我想用一个热键呼出(比如F12),不知下面的代码该怎么写?望高手指点! 最后是否 还要unRegisterHotKey?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aiirii
2004-03-29
打赏
举报
回复
http://eco.hermes.com.cn/emailsys/enews/techpreview.asp?j=5&p=236
全局热键
--------------------------------------------------------------------------------
在程序里定义热键,只能在自己的应用窗口范围内使用,受到一定的限制。如果能在自己的应用程序里定义能被所有窗口访问的热键,应该是比较具有现实意义的。要定义一个全局热键,通常有三个步骤:
1.定义 Windows 的消息 WM_HOTKEY 的 HOOK 链,即 procedure myshortcut(var message: TMessage);message WM_HOTKEY;
2.向 Windows 加入一个全局原子 hotkey : GlobalAddAtom('hotkey'), 并保留其句柄。
3.向 Windows 登记热键链: RegisterHotKey( 应用句柄,全局原子句柄, mod_control ,88 );
其中,RegisterHotKey 函数原形如下
BOOL RegisterHotKey(
HWND hWnd, // 连接热键的窗口句柄
int id, // 全局原子句柄
UINT fsModifiers, // 热键修饰标志
UINT vk // 虚拟键盘码
);
这里,fsModifiers 是指虚拟键盘码 vk 结合何种键一起生成 WM_HOTKEY 的消息,它是下列三值的组合:
MOD_ALT // ALT 键必须按下
MOD_CONTROL // CTRL 键必须按下
MOD_SHIFT // SHIFT 键必须按下
有了这些准备,你就可以定义自己喜欢的方式了。下面是一个范例,当 CTRL + Q 在任何时候被按下时,都会打出 "你好,Crtl + Q 被按下" 的信息。
Type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
protected
procedure myshortcut(var message: TMessage); message WM_HOTKEY;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
id:Integer;
implementation
{$R *.DFM}
procedure TForm1.myshortcut(var message: TMessage);
begin
ShowMessage('你好,Crtl + Q 被按下');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
id:=GlobalAddAtom('hotkey');
RegisterHotKey(handle,id,mod_control,88);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(handle,id); //别忘了在退出时取消定义
end;
Percy_ButtonS
2004-03-29
打赏
举报
回复
谢谢:)
winform中ShowInTaskbar设为false时,
注册
的
热键
失效的
问题
解决
最近一个项目需要实现通过
热键
控制界面的显示和隐藏的效果。抛开
热键
的
问题
,先来看界面的显示和隐藏,.net中通过以下两个方法实现: Code//隐藏窗体,并不在任务栏显示privatevoidHideCurrentForm(){WindowState=FormWindowState.Minimized;ShowInTaskbar=false;}...
VC++
热键
注册
这两天编程进行
热键
注册
时,遇到了一些
问题
,把它总结了一下,希望能为学习VC的人提供一点参考。一、
热键
注册
的步骤1、
热键
消息处理函数的声明在头文件中加入如下代码:afx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);2、添加消息映射BEGIN_MESSAGE_MAP(CWndSnapDlg
实现一个
热键
注册
编辑的类
实现一个
热键
注册
编辑的类CST(http://blog.csdn.net/mrtechno) 2005-8-19 1 文档目的... 12
热键
编程基础... 12.1 API函数... 12.2 编程方法... 23 实现概述... 44 实现细节... 44.1 XML配置文档结构... 44.2
热键
编辑控件 ThotKeyEdit 54.3
热键
自定义窗体类TformHotKeyconf
远程注入dll中
注册
热键
函数原型如下 BOOL RegisterHotKey( HWND hWnd, // handle to window int id, // hot key identifier UINT fsModifiers, // key-mod
建筑材料水泥基渗透结晶防水剂技术规范:CCCW-A型混凝土抗渗增强材料应用与施工指导
内容概要:CCCW-A水泥基渗透结晶防水剂是一种以硅酸盐水泥和活性化学物质为主要成分的粉状防水材料,掺入混凝土中使用,具有提高混凝土致密性、抗渗性及自愈修复微裂缝的功能。该产品还能提升混凝土强度10~25%,改善和易性和可泵送性,减少坍落度损失与收缩开裂,并有效抵抗氯离子等有害介质侵蚀,增强耐久性。符合GB 18445-2012标准A型要求,适用于隧道、地下工程、水利、民建、市政等多种对防水抗渗有要求的工程场景。施工时按水泥用量的1~2%添加,需进行配合比试配,养护方式与普通混凝土相同。; 适合人群:从事土木工程施工、建筑材料研发、防水工程设计与施工的技术人员及工程管理人员。; 使用场景及目标:①用于各类地下、水工及民用建筑结构的混凝土防水抗渗工程;②解决混凝土微裂缝自修复与长期耐久性提升
问题
;③替代部分泵送剂以优化混凝土施工性能。; 阅读建议:使用前须进行配比试验确认添加量,注意佩戴防护装备以防水泥致敏,储存时应防潮防冻,超期使用前需复检性能指标。
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章