BCB key事件中判断Shift、Alt、Ctrl状态
BCB key事件中判断Shift、Alt、Ctrl状态:
类似此事件中
void __fastcall TForm1::keydown(TObject *Sender, WORD &Key,TShiftState Shift)
{
if(Key==VK_DELETE)
{
((TcxTextEdit*)Sender)->Top=-111;
((TcxTextEdit*)Sender)->Left=-111;
}
if(Key==VK_LEFT&&Shift.Contains(ssCtrl))
{
int left=((TcxTextEdit*)Sender)->Left-5;
if(left<0)left=0;
((TcxTextEdit*)Sender)->Left=left;
}
}
Shift是一个TShiftState集合,集合中元素值及含义参见下表
元素值及其含义:
ssShift:"Shift"键被按下;
ssAlt:"Alt"键被按下;
ssCtrl:"Ctrl"键被按下;
ssLeft:鼠标左键被按下;
ssRight:鼠标右键被按下;
ssMiddle:鼠标中键被按下;
ssDouble:左右鼠标同时被按下。
查看某一个元素是否在集合中,使用方法Contains()。
bool __fastcall Contains(const T) const;
如果集合中包含有元素T,则返回true,否则返回false。
一:字母和数字按键的建码值
收藏一下键盘虚拟键值
Backspace->8 Tab->9 Return->13 Pause->19 CapsLock->20 Esc->27 Space->32 PageUp->33 PageDown->34
End->35 Home->36 LeftArrow->37 UpArrow->38 RightArrow->39 DownArrow->40 PrintScrn->44 Insert->45 Delete->46
0->48 1->49 2->50 3->51 4->52 5->53 6->54 7->55 8->56 9->57
A->65 B->66 C->67 D->68 E->69 F->70 G->71 H->72 I->73 J->74 K->75 L->76 M->77
N->78 O->79 P->80 Q->81 R->82 S->83 T->84 U->85 V->86 W->87 X->88 y->89 Z->90
LWin->91 RWin->92 PopMenu->93
NumPad0->96 NumPad1->97 NumPad2->98 NumPad3->99 NumPad4->100 NumPad5->101 NumPad6->102 NumPad7->103 NumPad8->104 NumPad9->105
NumPad*->106 NumPad+->107 NumPad-->109 NumPad.->110 NumPad/->111
F1->112 F2->113 F3->114 F4->115 F5->116 F6->117 F7->118 F8->119
F9->120 F10->121 F11->122 F12->123 F13->124 F14->125 F15->126 F16->127
F17->128 F18->129 F19->130 F20->131 F21->132 F22->133 F23->134 F24->135
NumLock->144 ScrollLock->145
;->186 ,->188 .->190 /->191 `->192 [->219 \->220 ]->221 '->222
原文:https://blog.csdn.net/beslow/article/details/9492025
https://blog.csdn.net/u011981242/article/details/52332172/
https://jingyan.baidu.com/article/fedf073780e16335ac8977a4.html
BCB key事件中判断Shift、Alt、Ctrl状态的更多相关文章
- C#-判断Shift,Alt,Ctrl是否被按下,确定所按下的组合键
在创建接受用户击键的应用程序时,您还可能希望监视 SHIFT.ALT 和 CTRL 键等组合键.当一个组合键与其他键同时按下,或在单击鼠标的同时按下时,您的应用程序能够做出适当响应:字母 S 可能仅导 ...
- KeyDown/PreviewKeyDown事件中监听Alt键按下
一个坑 在WPF应用程序(或者其他Windows应用程序中),为了监听Alt键按下,我们可以尝试写出这样的代码: PreviewKeyDown += (s, e) => { if (e.Key ...
- asp.net 在AcquireRequestState事件中判断登陆验证。
Global中添加AcquireRequestState事件. protected void Application_AcquireRequestState(object sender, EventA ...
- 在cc.EventListener.TOUCH_ONE_BY_ONE事件中判断拖动物离哪边近飞向那边
需将拖动物坐标和要飞向物坐标转化为整个layer的坐标,因为人们判断远近是根据整个layer来看的.
- .NET winform 的keypress事件中判断当用户按下的是哪个键
keys是按键的枚举类型 private void txtPropertyValue_KeyPress(object sender, KeyPressEventArgs e) { if ((Keys) ...
- C#程序中判断DEBUG和RELEASE状态
编辑 删除 习惯了用老方式(注释的方式)来对程序进行调试,不过昨天才发现这样调试存在很大的隐患:在工程发布的时候如果忘记把该注释的代码注释掉,而让这些调试信息随工程一起发布,如果是可见的调试信息倒好发 ...
- 【转】C#中判断扫描枪输入与键盘输入
提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBox,当条码无法扫描时,需要手工输入.如果是扫描枪输入时,我们将自动去判读条码,而手工输入时,最终需要加按回车键确认后判读条码.这时候我 ...
- WinForm中TextBox 中判断扫描枪输入与键盘输入
本文转载:http://www.cnblogs.com/Hdsome/archive/2011/10/28/2227712.html 提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBo ...
- 在拖放文件的同时检测shift键的状态
老板要给原来文件拖放的功能加个扩展分类,于是想在文件拖放时判断shift键的状态来区分. 一般通过keydown和keyup来判断按下与否,但这都是需要控件事件触发,而在拖放的时候是没法触发key事件 ...
随机推荐
- leetcode最长回文
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- Ubuntu下载搜狗输入法
实在...因为百度上写的就很好了,所以这里就直接“链”了.. https://jingyan.baidu.com/article/2d5afd6933a67b85a2e28e9f.html
- 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率
原文:通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 使用 Visual Studio 开发 C#/.NET 应用程序,以前有 ReSharper 来不足其各项功能短板 ...
- 转 C# 使用openssl
//先用大整数来生成一个1024bit的密钥对 RSA rsa = new RSA(); BigNumber number = OpenSSL.Core.Random.Next(10, 10, 1); ...
- php生成一维码以及保存-转载
地址:http://www.cnblogs.com/ForEvErNoME/archive/2012/04/21/2460944.html 注释掉: //header('Content-Type: i ...
- python day10: 反射补充,面向对象
目录 pythdon day 10 1. 反射补充 16. 面向对象 16.1 面向对象初步介绍 16.2 面向对象和面向过程区别 16.3 对象的进化 17. 类class 17.1 类的定义 17 ...
- src属性与浏览器渲染
img标签 只要设置了src属性, 就会开始下载,因此可以使用这个特性,配合display:none,默默的下载一些图片,用的时候直接用,快了那么一丢丢~ 注意:不一定要添加到文档后才会开始下载,是只 ...
- Django:Python3.6.2+Django2.0配置MySQL 转载
Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据库... 我使用的版本是:Py ...
- Linux网卡上添加多个IP
1.查看现有网卡ip addr show看到ens_xxx 2.进入网卡配置项cd /etc/sysconfig/network-scripts/vim ifcfg-ens192末尾添加2行:IPAD ...
- 【转】TCP报文格式定义详解
TCP报文是TCP层传输的数据单元,也叫报文段. 1.端口号:用来标识同一台计算机的不同的应用进程. 1)源端口:源端口和IP地址的作用是标识报文的返回地址. 2)目的端口:端口指明接收方计算机上的应 ...