当前位置:C++技术网 > 精选软件 > 虚拟键码的所蕴含的Windows系统的设计思想之一

虚拟键码的所蕴含的Windows系统的设计思想之一

更新时间:2016-01-06 00:20:37浏览次数:1+次

    正如虚拟键码名称所透露出的信号,虚拟这个词从来都让人琢磨不透。我这里就讲讲虚拟键码的意思。
    我们知道,虚拟键码是用来描述键盘上的按键的ID的。也就是说,得到这个虚拟键码,你就知道了按下了哪个按键。很多人以为那为什么不直接叫做键码呢?为什么叫做虚拟键码呢?

    是的,想必其中必然有什么思想蕴含其中。只是发问的人没有站在这个思想之上,所以总是不清楚为什么。微软的系统是经过好多年的考验的,这样设计,也体现Windows系统的设计理念是很先进的。为什么这么说?

    虚拟键码所蕴含的设计思想就是分层,就和网络协议的分层模式一样。分层思想让各层工作在各自的层次,通过接口提供支持。所以,上层的不需要考虑下层的具体实现和情况,只要接口保持一致接口。
    我们现在很多的系统设计都采用分层的思想。Windows就是这样的。而且越是大的系统越要这么设计。分层的思想让系统扩展性更好,兼容性更高。
    那么虚拟键码,也就因此得到了这个称号!本来直接用一个标准键盘的按键得到一个键码,就不用虚拟了。然而,键盘却可以有很多种,每一种键盘,按键数量,布局等都不一样。所以,微软不能将这个键码与硬件直接关联,因为这会让扩展性很差,你必须使用标准的键盘才能够正确的使用。然而各种设计的键盘都有很好的应用,难道因为这个就让人唾弃Windows系统不好,岂不太不划算了。
    所以,Windows中,使用一套逻辑的编号,指定对应的键码。这个逻辑的编号,并不真正的对应键盘的一个物理按键。这个对应关系是由键盘驱动程序来和Windows系统对接。或者说,Windows提供一个标准的接口,就是这么多的虚拟键码,设计的虚拟键码的按键很全,包含了各种键盘的按键,还预留了一些按键的键码。当你的键盘接入后,键盘只要将按键对应到这个虚拟键码接口。这样,Windows程序员也不用管那么多的键盘类型,只知道虚拟键码是哪个按键即可。这样大大简化了开发流程,形成与硬件无关的开发方式。对于键盘的发展来讲,也不会受标准键盘的制约,只要提供标准的接口,即可以接入Windows系统使用。
    那么这也是虚拟键码的名称由来。实际上蕴含的就是一种分层的设计思想。我们学习Windows其实更多应该领略这些思想,然后再可以轻松的学会Windows中的各种技术。思想作为指导,对学习有很大的帮助哦。