《C语言键盘操作》pdf版

《C语言键盘操作》pdf版

ID:37250651

大小:687.24 KB

页数:141页

时间:2019-05-20

《C语言键盘操作》pdf版_第1页
《C语言键盘操作》pdf版_第2页
《C语言键盘操作》pdf版_第3页
《C语言键盘操作》pdf版_第4页
《C语言键盘操作》pdf版_第5页
资源描述:

《《C语言键盘操作》pdf版》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第一章编程技术实现如果你是在dos下编程,情况要复杂一些。你需要编写一个键盘中断扫描程序,然后用这个程序(函数)替换系统的中断程序(通过中断向量表)。如果你是在windows下编程,就比较简单了。用SHORTGetAsyncKeyState(intvKey);函数就可以了,具体使用方法可以查msdn。如果你想做一个比较正规一些的windows游戏,可以研究一下DirectInput。本章内容简介:本章主要介绍如何实现键盘和鼠标的输入,图形图像技术,动画技术,发声技术,汉字显示技术,精确的时间控制技术。是编写大型程序的基本

2、功。虽然每个技术所涉及的内容很少,所提及的函数也很少,但是当它们组合在一起的时候,就可以编写大型程序。一、键盘:首先有必要介绍一下计算机是如何来处理键盘输入的数据的键盘里面有一个微处理器,用来扫描和检测每个键的按下或者抬起的状态,然后向主机传送一个字节的键盘扫描码,键盘扫描码翻译成对应的ASCⅡ码。作为编程来说,只要知道每个按键都有对应的ASCⅡ码。由于ASCⅡ码不能将键盘上所有的按键全部包括,因此有些控制键如Ctrl、Alt、End、Home和Del等用扩充的ASCⅡ码表示。至于每个按键所对应的ASCⅡ码到底是什么,这

3、里介绍一个函数可以实现该功能:intbioskey(intn)该函数声明在bios.h头文件中,所以调用之前需要在程序开始的位置写上#include,(以后如果第一次碰到的函数可以在TC根目录下的include文件夹中的头文件中查找,可以用记事本打开。)参数n用来确定该函数的三个功能,具体如下表所示表1-1参数n的具体数值实现的功能0bioskey(0)返回按键的键值——两个字节的整型数据。若没有键按下,该函数一直等待,直到有键按下(这种情况有时会影响效率,在之后的例2中会看到有一种方法可以实现:在一定时

4、间内没有按键就去执行下面的代码)。当按下时,返回该键所对应的ASCⅡ码或其扩展的ASCⅡ码。具体请看例1;1bioskey(1)查询是否有键按下。若没有键按下,返回0;若有键按下,返回非零值2bioskey(2)将返回一些控制键是否被按过,按过的状态由该函数返回的值来表示,具体请看表2如选参数n为2时,当某位为1时,表示相应的键已按,或相应的控制功能已有效,若key值为0x09,那么从表1-2中可以得知右Shift键和Alt键被按下,因为只有0x01和0x08相加和为0x09。若该函数还是无法理解也不影响最后编小游戏,故

5、此处不做详细介绍。表1-2字节位对应的16进制数含义字节位对应的16进制数含义00x01右Shift键被按下40x10ScrollLock已打开10x02左Shift键被按下50x20NumLock已打开20x04Ctrl键被按下60x40CapsLock已打开30x08Alt键被按下70x80Inset已打开例1-1:#includeintmain(){intkey;key=bioskey(0);printf(“%x”,key);}/*该例子中,若按下键盘上的UP(↑)键,屏幕会显示4800(16进制)

6、,用16进制是一种习惯,在上表2中也体现了这种习惯的合理性。*/例1-2:#include#includeintmain(){inti,s;for(i=0;i<5000;i++){delay(1);/*delay()函数用于延时,即使同样的参数会根据不同的实际情况的不同而延时不同的时间,精确的时间控制请参阅《精确的时间控制》(超链接)一章*/if(bioskey(1)!=0){s=1;break;}}printf(“hello”);}}/*该例中用了一个5000次的循环,每次延时1,每次

7、去判断是否有按键被按下,如果有,则跳出循环,马上去执行printf(“hello”);若5000次循环里面都没有按键按下,在循环结束后,执行printf(“hello”);这种方法对于最后编小游戏非常有用,在最后的吃豆子放炸弹(超链接)例子中会再次提到*/最后再介绍一个函数:intkbhit(void);该函数声明在conio.h头文件中,所以调用之前需要在程序开始的位置写上#include若按了键盘,该函数返回1,否则返回0;C语言也可以实现鼠标的操作,但由于这种方法效率低,现在的面向对象的编程都不是

8、用C语言的鼠标操作手段。并且,本课程的一些例子中,也可以不用鼠标的操作,一般只用键盘就可以实现所需要的功能,因此,这里就不做介绍。第二章文本与图像的显示第一节硬件基础由于本课程的重点在于让大家体会C语言的进一步用法,所以对于硬件部分的知识(有兴趣的话可以到硬件概论学习硬件知识),本人会在非讲不可的情况下给大家做一介绍

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。