VIRTKEY是做什么的

njtzj 2007-06-25 08:25:30
VIRTKEY是做什么的,看书也看不懂,我在热键时使用到的
...全文
833 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongyi940333 2007-06-25
  • 打赏
  • 举报
回复
具体见WINDOWS程序设计这本书键盘这一章:以下内容摘自这一章

虚拟键码保存在WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN和WM_SYSKEYUP消息的wParam参数中。此代码标识按下或释放的键。

哈,又是「虚拟」,您喜欢这个词吗?虚拟指的是假定存在于思想中而不是现实世界中的一些事物,也只有熟练使用DOS汇编语言编写应用程序的程序写作者才有可能指出,为什么对Windows键盘处理如此基本的键码是虚拟的而不是真实的。

对于早期的程序写作者来说,真实的键码由实际键盘硬件产生。在Windows文件中将这些键码称为「扫描码(scan codes)」。在IBM兼容机种上,扫描码16是Q键,17是W键,18是E、19是R,20是T,21是Y等等。这时您会发现,扫描码是依据键盘的实际布局的。Windows开发者认为这些代码过于与设备相关了,于是他们试图通过定义所谓的虚拟键码,以便经由与设备无关的方式处理键盘。其中一些虚拟键码不能在IBM兼容机种上产生,但可能会在其它制造商生产的键盘中找到,或者在未来的键盘上找到。

您使用的大多数虚拟键码的名称在WINUSER.H表头文件中都定义为以VK_开头。表6-2列出了这些名称和数值(十进制和十六进制),以及与虚拟键相对应的IBM兼容机种键盘上的键。下表也标出了Windows执行时是否需要这些键。

Windows也包括在主键盘上的字母和数字键的虚拟键码(数字键盘将单独处理)。

注意,数字和字母的虚拟键码是ASCII码。Windows程序几乎从不使用这些虚拟键码;实际上,程序使用的是ASCII码字符的字符消息。

njtzj 2007-06-25
  • 打赏
  • 举报
回复
还是不对

VK_F1, IDM_HELP, VIRTKEY

这样是可以的,没用组合,忘指教!
njtzj 2007-06-25
  • 打赏
  • 举报
回复
类型——用来指定键的定义方式,可以是VIRTKEY和ASCII,分别用来表示“键名”字段定义的是虚拟键还是ASCII码

是不是只要类似于ctrl+a这样的组合,非单键就得使用VIRTKEY,因为键盘上没有CTRL+A这键,所以把他看成虚拟键?
njtzj 2007-06-25
  • 打赏
  • 举报
回复
VK_F1,IDM_HELP,VIRTKEY

那为什么VK_F1,IDM_HELP,ASCII这样不行呢?

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧