当前位置:C++技术网 > 精选软件 > 键盘的字符按键、控制字符按键和功能键三种按键全面解析

键盘的字符按键、控制字符按键和功能键三种按键全面解析

更新时间:2016-01-18 00:15:32浏览次数:1+次

    纵观键盘的所有按键,看上去林林总总,有各种各样的按键,似乎比较难以归类。我在此做一个基本的分析,让你轻松理解键盘的所有按键以及功能。
    键盘中有三种按键,分别是普通字符按键、控制字符按键和功能键。这个分类是以键盘按键的功能来分类的。对于程序员来讲,这是很有用的。此分类不适合非程序员了解键盘。
    1.字符按键
    字符按键,就是能够产生可见字符的键盘按键,包含了26个字母键、数字键、标点符号键、空格键等。这些按键产生的字母就形成了实实在在可以看得见的符号,形成文本。所以字符按键会产生WM_CHAR消息,在这个消息的参数中,就携带了字符的编码信息。如果窗口类时A版本,则接收到的是ASCII编码字符,如果窗口类时W版本,则接受到的字符是Unicode编码字符。
    而字符消息WM_CHAR的产生,并不是凭空而来。它是在字母按键按下时有按键消息转化得到的。这个转化,就是消息循环的转换消息函数执行的。那么也就是说,如果要得到字符消息,必然是先产生WM_KEYDOWN消息。所以,对于字符按键,你既可以在按键消息中处理,也可以在字符消息里处理。不过,如果只是用来处理字符,也就是利用字符按键产生字符,那么在字符消息里处理更为方便。这也是大家通常采用的方法。
    不过,如果你将字符按键用作非字符的功能,比如游戏中将ASDW四个按键当做光标的四个按键,控制人物的移动,那么此时不需要字符,所以,可以在按键按下消息处理。如果你在字符消息里处理,也没有任何问题。这只是一个习惯问题。
    2.控制字符按键
    控制字符按键,指的是,这个按键产生的字符并不是普通形成文本的字符,这些字符通常用来作为辅助格式控制、删除字符或者换行的按键。甚至这些字符可能需要多个按键组合形成。比如退格键形成\b,Tab键形成制表符,回车键形成换行符等。而这些字符并不是用来显示的。程序通常用这些字符来处理现有的文本的排版显示或者删除等。然而,控制字符也是字符,只是与普通字符用处不一样罢了。所以,对于控制字符按键的处理,你也可以和普通的字符一样处理即可,有字符消息和按键消息两种处理方式。不过采用哪种方式,由你自己来决定。根据你程序的结构,选择最合适的方式。不过一般使用的方式是按键消息处理,使用虚拟按键似乎比较直接,而是用字符感觉不那么直接。个人感觉而已,不要太介意。
    3.功能键
    功能键,就是只完成功能的,不会产生任何字符的。这些按键只是为了完成某些功能设计的,比如光标方向键,就是为了移动光标设计的,不会产生字符,还有F系列的按键,还有Home、End等等。因为功能键不会产生任何的字符消息,所以只能在按键消息中处理了。
    以上三类按键分类,都是以按键的功能来分的,也没有列出都有哪些按键。如果你看懂了这个分类,我想你再确定键盘的按键所属的分类,是很简单的事情哦。