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

转载于:https://www.cnblogs.com/xiangtingshen/p/11149858.html

BCB key事件中判断Shift、Alt、Ctrl状态相关推荐

  1. 每个java程序都至少有一个线程给主线程,java程序在主线程中判断各个子线程状态的操作,该如何解决...

    java程序在主线程中判断各个子线程状态的操作 每个子线程在队列为空时会wait等待其他线程添加新url到队列,到最后所有子线程都取不到url时也会都wait住,要在主线程中判断如果所有的子线程都是w ...

  2. js判断wifi_使用JS在浏览器中判断当前网络连接状态的几种方法

    使用JS在浏览器中判断当前网络状态的几种方法如下: 1. navigator.onLine 2. ajax请求 3. 获取网络资源 4. bind() 1. navigator.onLine 通过na ...

  3. web 端JS取得window 的按键动作(按下Shift, Alt,Ctrl....)

    如何取得 基本上都是从动作的event 中去判断. IE下的处理 在IE中, window 对象里就有包含event. 看例子: <!--Add by oscar999--> <!D ...

  4. linux的ctrl alt f6的作用,Linux(Centous6.4)操作系统中,快捷键Alt+Ctrl+F10是什么作用?...

    满意答案 John_0515 2017.07.16 一些常用快捷键 切换到第一个文本终端.在Linux 下你可以有多达六个不同的终端.这个命令的意思是:"同时按住键和键,然后按键,再释放所有 ...

  5. h5滚动时侧滑出现_H5触摸事件中如何判断用户滑动方向

    这次给大家带来H5触摸事件中如何判断用户滑动方向,H5触摸事件中判断用户滑动方向的注意事项有哪些,下面就是实战案例,一起来看一下. 接口 TouchEvent TouchEvent 是一类描述手指在触 ...

  6. ArcEngine的鼠标事件中按键判断~

    我们都知道,在.Net的鼠标事件中判断鼠标事件方法如下(以button为例): Private Sub Button1_MouseDown(ByVal sender As System.Object, ...

  7. html5触摸事件判断滑动方向,H5触摸事件中如何判断用户滑动方向

    这次给大家带来H5触摸事件中如何判断用户滑动方向,H5触摸事件中判断用户滑动方向的注意事项有哪些,下面就是实战案例,一起来看一下. 接口 TouchEvent TouchEvent 是一类描述手指在触 ...

  8. WinForm中TextBox 中判断扫描枪输入与键盘输入

    提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBox,当条码无法扫描时,需要手工输入.如果是扫描枪输入时,我们将自动去判读条码,而手工输入时,最终需要加按回车键确认后判读条码.这时候我 ...

  9. AS中的shift+F6的作用

    AS中的shift+F6的作用 shift + F6 :重命名,即批量替换选择的对象名称为新的名称,类似eclipse中的shift+alt+R 比如在RecyclerView中进行Adapter的封 ...

最新文章

  1. html的后绑定事件,HTML 控件绑定事件
  2. 使用HTML5监測站点性能
  3. c语言如何让函数一直执行,C语言如何实现在每天某个特定时间执行某个函数?
  4. .NET可变性解析(协变和逆变)
  5. 蓝桥杯2020山西省省赛太原理工大获丰收
  6. Java常见面试题:Oracle JDK 和 OpenJDK 的区别?
  7. 目标跟踪 SiamFC++ (Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines)
  8. Matlab阶乘累加,MATLAB中带有符号变量的阶乘、累加函数的表达与求解
  9. 使用pm2管理项目(指令)
  10. 《30天自制操作系统》学习笔记--第0天
  11. mac下Aria2GUI+Chrome解决网盘下载速度慢
  12. 深度隐藏文件或文件夹原理与应用
  13. 生命,感情,谁之脆弱
  14. 图片底部留白怎么处理
  15. 国内支持原生android吗,定制安卓和原生Android到底有哪些不同之处?彻底真相了...
  16. 3配置的笔记本能不能运行博图v15_运维便携口袋笔记本:壹号本工程师PC评测
  17. Flink状态一致性检查点
  18. Linux系统性能监测工具——CPU
  19. 极客时间《软件工程之美》学完感
  20. 购买iPhone手机时的专业术语名词解析

热门文章

  1. 深入浅出计算机组成原理学习笔记:高速缓存(下)-你确定你的数据更新了么?(第38讲)...
  2. 001-Java命名规范
  3. BZOJ5020: [THUWC 2017]在美妙的数学王国中畅游
  4. class-5 If语句
  5. 29、剑指offer--最小的K个数
  6. 4.1 MyEclipse中搭建Struts2开发环境
  7. backbone.js学习笔记
  8. template与图片懒加载
  9. Android Studio的技巧
  10. POJ 1860 Currency Exchange (Bellman-Ford)