键盘与鼠标的控制,win32编程

键盘与鼠标的控制,win32编程

ID:22049638

大小:161.00 KB

页数:7页

时间:2018-10-26

键盘与鼠标的控制,win32编程_第1页
键盘与鼠标的控制,win32编程_第2页
键盘与鼠标的控制,win32编程_第3页
键盘与鼠标的控制,win32编程_第4页
键盘与鼠标的控制,win32编程_第5页
资源描述:

《键盘与鼠标的控制,win32编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Win32编程一键盘与鼠标的控制[ITjob课程资料IWin32程序对键盘的控制当您在窗口上按下一个键时,对应的键盘上的键都产生一个扫描码,然后触发WNLKEYDOWN或者職LSYSKEYDOWN,然后将对应的键码放入该消息对应的wParam参[中。当您释放一个键时,Windows把WM_KEYUP或者WM_SYSKEYUP消息放入消息队列中,系统键盘即ALT键,见下表:键按下键释放非系统键(非ALT键)WM—KEYDOWNWMKEYUP系统键(ALT键)WM一SYSKEYDOWNWMSYSKEYUP比如,我

2、们编写如下代码的时候程序可以处理:switch(uMsg){caseWMKEYDOWN:sprintf(szChar,〃你按下了键〃,wParam);MessageBox(hwnd,szChar,〃WM_KEYDOWN〃,0);break;caseWM_SYSKEYDOWN:sprintf(szChar,〃你按下了ALT键〃);MessageBox(hwnd,szChar,〃WM_SYSKEYDOWN",0);break;当按下任何按钮的时候,系统弹出该对话框指明你按下了哪个键盘,如下表:键码对照表对应值对应

3、键对应值对应键对应值对应键1鼠标左键2鼠标右键3Cancel4鼠标中键568Backspace9Tab12Clear13Enter16Shift17Ctrl18Alt19Pause20CapsLock21212324252527Esc2829303132Space33PageUp34PageDown35End36Home37LeftArrow38UpArrow39RightArrow40DownArrow41Select42Print43Execute44Snapshot45Insert46Delete47H

4、elp48049150251352453554655756857965A66B67C68D69E70E71G72H73I74J75K76L77M78N79080P81Q82R83S84T85U86V87W88X89Y90z96小键盘097小键盘198小键盘299小键盘3100小键盘4101小键盘5102小键盘6103小键盘7104小键盘8105小键盘9106小键盘*107小键盘+108小键盘Enter109小键盘-110小键盘.111小键盘/112F1113F2114F3115F4116F5117F6118F

5、7119F8120E9121F10122E11123F12144NumLock145Scroll173VolumeMute174VolumeDown175VolumeUp186••9•187=+189—191/?192'〜219[I220221]}222,”特别注意:WM_KEYDOWN的wParam是键码,而不是ASCII码,虽然对于A来说都是65。下面我们来看看组合键,如SH1FT+CTRL+A。调用GetKeyState函数捕捉是否按下了位移键(Shift、Ctrl)或开关键(CapsLock)oGe

6、tKeyState函数原型为:SHORTGetKeyState(intnVirtKcy);其返回值指明了nVirtKey这个键码对应的键的状态。如果返回值&0x8000为1,该键就是按下的,否则就是松开的(Shift、Ctrl);如果返回值&0x0001为1,表明该键是锁定的,否则就不是锁定状态(CapsLock)。例如:SHORTnState=GetKeyState(VK_SHIFT);BOOLblsPressed=nState&0x8000;可以用blsPressed来判断SHIFT键是否被按下了。SHO

7、RTnState=GetKeyState(VK_CAPITAL);BOOLblsToggled=nState&0x0001;可以用bisToggled来判断大写键是否锁定状态。下面我们就来实现SHIFT+CTRL+A的代码:caseWM_KEYDOWN:if(wParam==65){if(GetKeyState(VK_SHiFT)&0x8000)if(GetKeyState(VK_C0NTR0L)&0x8000)sprintf(szChar,〃你按下了A键和SHIFT>CONTROL键〃);elsesprin

8、tf(szChar,"你按下了A键和SHIFT键");elsesprintf(szChar,〃你按下了A键〃);MessageBox(hwnd,szChar,’’WMKEYDOWN",0);}_break;使用键盘码还是比较麻烦,比如判断A键盘到底是大写还是小写就非常麻烦,这个问题如果用ASCII码就得到完美的解决,因为在ASCII中大写的A和小写的A区分的很清楚,不用依赖组合键进行判断。回到我们一

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

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

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