2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt

2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt

ID:57043661

大小:300.00 KB

页数:37页

时间:2020-07-28

2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt_第1页
2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt_第2页
2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt_第3页
2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt_第4页
2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt_第5页
资源描述:

《2019年第6章Windows应用程序对键盘与鼠标的响应课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章Windows应用程序 对键盘与鼠标的响应扫描码是依赖于具体设备的,为达到设备无关性的要求,往往使用与具体设备无关的虚拟码,虚拟码是由Windows系统定义的与设备无关的键的标识由于键盘的输入产生一条消息扫描码、虚拟码以及其他与击键有关的消息设备驱动程序截取键的扫描码翻译虚拟码它含键盘上的键对应一个唯一的标识值(扫描码)按下或释放某键时产生取出键盘消息进行处理消息设备驱动程序把消息放到系统的消息队列中Windows从系统消息队列中取出消息发送到相应的线程消息队列中窗口过程6.1键盘在应用程序中的应用虚拟码是一种与设备无关的

2、键盘编码,它的值存放在键盘消息的wParam参数中,用以标识哪一个键被按下或释放,最常用的虚拟码已经在Windows.h中定义。操作系统在接收到键盘输入后把消息发送给具有“输入焦点(inputfocus)的窗口应用程序一般有几个窗口,但当按下某一个键时,只有一个窗口能接收到该键盘消息,接收这个键盘消息的窗口称为有“输入焦点”的窗口有“输入焦点”的窗口应是活动窗口或者活动窗口的子窗口窗口正在接收输入焦点窗口函数通过捕获WM_SETFOCUS和WM_KILLFOCUS消息确定当前窗口是否具有输入焦点。窗口失去输入焦点键盘消息按键消息

3、字符消息按下或松开一个键时就产生了一按键消息一个按键的组合产生了一个可以显示的字符时,就产生了一个字符消息系统按键消息非系统按键消息Alt键与相关输入键的组合产生的消息,这些键一般由Windows系统内部直接处理,应用程序不处理若应用程序处理了这些系统键消息,还要调用DefWindowsProc()函数,以便不影响系统对它们的处理不使用Alt键组合的的按键消息按键消息的两个变量wParamlParam32位的变量重复计数位(0~15位)OEM扫描码(16~23位)扩展键标志(24位)保留位(25~28位)关联码(29位)键的先前

4、状态(位30)转换状态(31位)包含了识别按下的键的虚键码在WinMain函数的消息循环中包含了TranslateMessage函数,其功能是把按键消息转化为字符消息,但只有当键盘驱动程序把键盘字符映射成ASCII码后才能产生WM_CHAR消息。字符消息系统非系统WM_KEYDOWN和WM_KEYUP的按键消息只能产生非系统消息WM_SYSKEYDOWN和WM_SYSKEYUP按键消息只能产生系统消息【例6-1】设计一个窗口,在该窗口中练习键盘的响应,要求如下:(1)单击键盘上的向上箭头时,窗口中显示“Youhadhittedt

5、heupkey”(2)单击键时,窗口中显示“YouhadhittedtheSHIFTkey”(3)单击键时,窗口中显示“YouhadhittedtheCTRLkey”(4)单击键时,窗口中显示“YouhadhittedtheCTRLAkey”(5)单击键时,窗口中显示“YouhadhittedtheSHIFTBkey”longWINAPIWndProc(HWNDhWnd,UINTiMessage,UINTwParam,LONGlParam){HDChDC;//定义设备环

6、境句柄PAINTSTRUCTps;//定义包含绘图信息的结构体变量HPENhPen;//定义画笔句柄HBRUSHhBrush;//定义画刷句柄//以下定义输出的字符串staticcharcUp[]="YouhadhittedtheUPkey";staticcharcCtrl[]="YouhadhittedtheCtrlkey";staticcharcShift[]="YouhadhittedtheSHIFTkey";staticcharcCtrl_A[]="YouhadhittedtheCTRLAkey";staticcharc

7、Shift_B[]="YouhadhittedtheSHIFTBkey";//下面定义并初始化按键标志变量staticBOOLnUpKeyDown=FALSE,nShiftKeyDown=FALSE,nCtrlKeyDown=FALSE,nCtrlAKeyDown=FALSE,nShiftBKeyDown=FALSE;switch(iMessage){caseWM_KEYDOWN:{switch(wParam){caseVK_UP://当按上箭头键时,变量置为真nUpKeyDown=TRUE;break;caseVK_SHIFT

8、://当按Shift键时,变量置为真nShiftKeyDown=TRUE;break;caseVK_CONTROL://当按Control键时,变量置为真nCtrlKeyDown=TRUE;break;default:break;}}break;caseWM_K

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

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

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