delphi – 将THOTKey设置为VK_NEXT会导致显示“NUM 3”
发布时间:2020-12-15 09:09:08 所属栏目:大数据 来源:网络整理
导读:一个非常简单的测试用例: alt text http://17slon.com/krama/hotkey.png procedure TForm3.btnCopyClick(Sender: TObject);begin HotKey2.HotKey := HotKey1.HotKey;end; 在第一个THOTKey中按“PgDn”键,显示“Page Down”.点击==按钮和第二个THOTKey将显示
|
一个非常简单的测试用例:
alt text http://17slon.com/krama/hotkey.png procedure TForm3.btnCopyClick(Sender: TObject); begin HotKey2.HotKey := HotKey1.HotKey; end; 在第一个THOTKey中按“PgDn”键,显示“Page Down”.点击==>按钮和第二个THOTKey将显示“Num 3”. 如果按下修改器(Shift等),也会发生类似的事情.该行为也适用于PgUp,Home,End和Ins. 据我所见,这发生在Windows内部:(正确的虚拟代码(34)沿着HKM_SETHOTKEY消息发送. 有人知道一个很好的解决方法吗?目前,我得到的唯一想法是发送伪造的WM_KEYDOWN / WM_KEYUP消息,参数设置为VK_NEXT和MapVirtualKey(VK_NEXT),但这有点难看…… 热键只是简单的THOTKeys: object HotKey1: THotKey
Left = 12
Top = 14
Width = 121
Height = 19
InvalidKeys = []
Modifiers = []
TabOrder = 0
end
object HotKey2: THotKey
Left = 194
Top = 14
Width = 121
Height = 19
InvalidKeys = []
Modifiers = []
TabOrder = 1
end
object btnCopy: TButton
Left = 143
Top = 14
Width = 42
Height = 19
Caption = '==>'
TabOrder = 2
OnClick = btnCopyClick
end
解决方法
hkExt修饰符很重要,也需要复制:
HotKey2.HotKey := HotKey1.HotKey; HotKey2.Modifiers := HotKey1.Modifiers; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
