Delphi:我可以区分数字键盘的回车键和回车键吗?
发布时间:2020-12-15 04:26:01 所属栏目:大数据 来源:网络整理
导读:我有一个古怪的小应用程序,弹出一个在Delphi中编写的屏幕数字键盘/计算器.如果您按“输入”(数字键盘),您将按“=”,如果您按“返回”(在主键盘上),您将按“确定”,我想这样做. 有一个确定按钮是表单的默认人员,响应进入或返回. 还有一个onkeydown事件处理程
我有一个古怪的小应用程序,弹出一个在Delphi中编写的屏幕数字键盘/计算器.如果您按“输入”(数字键盘),您将按“=”,如果您按“返回”(在主键盘上),您将按“确定”,我想这样做.
有一个确定按钮是表单的默认人员,响应进入或返回. 如果我可以知道返回和输入之间的区别,那么我可以在OK按钮上摆脱我的默认属性,只需按下OK按钮的单击事件处理程序在form key down函数,但是他们都是VK_RETURN. 解决方法
覆盖WM_KEYDOWN消息处理程序:
procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN; 实现它,以便除了您感兴趣的内容之外,它调用祖先,您可以通过密钥数据消息字段中的“扩展”位来检测返回键和输入键之间的区别: procedure TForm1.WMKeyDown(var Message: TWMKeyDown); const // Message.KeyData format: // [0..15 repCount][16..23 scan code][24 extended bit][25..28 reserved] // [29 context][30 previous state][31 transition state] KD_IS_EXTENDED = 1 shl 24; begin if Message.CharCode <> VK_RETURN then begin inherited; Exit; end; if (KD_IS_EXTENDED and Message.KeyData) <> 0 then ShowMessage('Keypad Enter') else ShowMessage('Return'); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |