鼠标键盘和资源ppt课件_第1页
鼠标键盘和资源ppt课件_第2页
鼠标键盘和资源ppt课件_第3页
鼠标键盘和资源ppt课件_第4页
鼠标键盘和资源ppt课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1页页2021-11-24第第2页页主要内容主要内容鼠标在鼠标在Windows程序设计中的运用程序设计中的运用键盘在键盘在Windows程序设计中的运用程序设计中的运用第第3页页6.1鼠标在运用程序中的运用鼠标在运用程序中的运用鼠标作为定位输入设备,经过鼠标单击、双击和拖动功能,用户可以很容易地操作基于Windows图形界面的运用程序。Windows中经过光标来指示当前鼠标的位置,在Windows操作系统中预定义了几种光标,并在Windows.h头文件中加以定义。第第4页页系统预定义的光标系统预定义的光标代表预定义光标的常量代表预定义光标的常量光标属性描画光标属性描画IDC_ARROW箭头

2、光标箭头光标IDC_CROSS十字光标十字光标IDC_IBEAMI 形文本光标形文本光标IDC_ICON空图标空图标IDC_SIZEALL十字箭头光标十字箭头光标IDC_SIZENESW带有指向东北方和西南方箭头的光标带有指向东北方和西南方箭头的光标IDC_SIZENS带有指向北方和南方箭头的光标带有指向北方和南方箭头的光标IDC_SIZENWSE带有指向西北方和东南方箭头的光标带有指向西北方和东南方箭头的光标ISC_SIZEWE带有指向东方和西方箭头的光标带有指向东方和西方箭头的光标IDC_UPARROW垂直箭头光标垂直箭头光标IDC_WAIT计光阴标计光阴标(也称沙漏光标也称沙漏光标)第第

3、5页页自定义光标自定义光标例如,下面的语句为窗口类例如,下面的语句为窗口类wndclassWNDCLASS wndclass;wndclass.hCursor=LoadCursor (hThislnst, IDC_WAIT);此外,还可在运用程序中调用此外,还可在运用程序中调用LoadCursor函数改动光标方式函数改动光标方式用户自定义光标用户自定义光标 自定义光标保管在扩展名为自定义光标保管在扩展名为.cur的文件中的文件中 光标名光标名 CURSOR 光标文件光标文件(。cur)采用自定义光标采用自定义光标时,需在资源文时,需在资源文件中定义光标资源件中定义光标资源加载光标资源加载光标资

4、源(常在定义窗口类时进展常在定义窗口类时进展) LoadCursor(hThisInst,lpszCursorname)当前实例句柄当前实例句柄当前光标当前光标第第6页页鼠标的操作鼠标的操作单击单击双击双击拖动拖动第第7页页获取系统中鼠标的信息获取系统中鼠标的信息获取鼠标按键数int GetSystemMetrics(SM_CMOUSEBUTTONS );获取鼠标双击时两次单击之间的最大时间间隔 int GetDoubleClickTime(); /单位毫秒设置鼠标双击时两次单击之间的最大时间间隔 BOOL SetDoubleClickTime(int); /单位毫秒第第8页页对光标的其它操作

5、对光标的其它操作将光标限制在一个区域将光标限制在一个区域(屏幕坐标屏幕坐标) BOOL ClipCursor( CONST RECT *lpRect);解除光标在某区域的限制解除光标在某区域的限制 BOOL ClipCursor(NULL);获得光标的当前位置获得光标的当前位置(屏幕坐标屏幕坐标) BOOL GetCursorPos( LPPOINT lpPoint); 设置当前光标的位置设置当前光标的位置 BOOL SetCursorPos( int X, int Y); 第第9页页对光标的其它操作对光标的其它操作设置光标设置光标SetCursor(HCURSOR)第第10页页例子例子Mou

6、seInfoDebugMouseInfo.exe第第11页页鼠标音讯鼠标音讯客户区客户区(用户区用户区)鼠标音讯鼠标音讯非客户区鼠标音讯非客户区鼠标音讯第第12页页客户区鼠标音讯客户区鼠标音讯第第13页页 WM_xBUTTONDOWN通常跟随通常跟随WM_xBUTTONUP,但并不一定跟随,但并不一定跟随假设要将假设要将xDOWN和和xUP配对,可运用鼠标捕配对,可运用鼠标捕获获 SetCapture(hWnd); 和和 ReleaseCapture();此时键盘功能暂时失效此时键盘功能暂时失效 第第14页页双击鼠标双击鼠标对于客户区鼠标音讯。当同一个鼠标键在较短对于客户区鼠标音讯。当同一个鼠

7、标键在较短时间内被延续单击两次,第二次按键被时间内被延续单击两次,第二次按键被WM_xBUTTONDBLCLK取代。取代。但是,上述情况只需在将窗口类的但是,上述情况只需在将窗口类的style属性设置属性设置为为CS_DBLCLKS才有效才有效CS_DBLCLKS款式的窗口,双击鼠标左键产生如下音讯:WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDBLCLKWM_LBUTTONUP非CS_DBLCLKS款式的窗口,双击鼠标左键产生如下音讯:WM_LBUTTONDOWNWM_LBUTTONUPWM_LBUTTONDOWNWM_LBUTTONUP第第15页页鼠标音讯的参数

8、鼠标音讯的参数lParamwParam第第16页页lParam包含了鼠标位置信息包含了鼠标位置信息(窗口坐标窗口坐标)高高16位:位:y坐标坐标低低16位:位:x坐标坐标x=lParam&0 xFFFF; x=LOWORD(lParam);y=(lParam&0 xFFFF0000)16; y= HIWORD(lParam);第第17页页n 各种虚拟键的形状n 判别在操作鼠标时能否按下键盘上的键n(wParam&MK_CONTROL)n 值为1,按下ctrln 值为0,未按下ctrlwParam值值含含义义MK_CONTROL按按下下键键按按上上的的 Ctrl 键键MK

9、_LBUTTON按按下下了了鼠鼠标标左左键键,等等同同与与 WM_LBUTTONDOWNMK_MBUTTON按按下下了了鼠鼠标标中中键键,等等同同与与 WM_MBUTTONDOWNMK_RBUTTON按按下下了了鼠鼠标标右右键键,等等同同与与 WM_RBUTTONDOWNMK_SHIFT按按下下键键盘盘上上的的 Shift 键键第第18页页非客户区音讯非客户区音讯WM_XBUTTONYWM_NCXBUTTONY第第19页页例子例子测试不同的光标测试不同的光标Debug6_1.exe第第20页页6.2键盘在运用程序中的运用第第21页页键盘上的键键盘上的键一个独一的一个独一的标识值标识值(扫描码扫

10、描码)按下或释放某键时按下或释放某键时产生产生对应对应第第22页页 扫描码是依赖于详细设备的,为到达设备无关性的要求,往往扫描码是依赖于详细设备的,为到达设备无关性的要求,往往运用与详细设备无关的虚拟码,虚拟码是由运用与详细设备无关的虚拟码,虚拟码是由Windows系统定义的系统定义的与设备无关的键的标识。与设备无关的键的标识。第第23页页键盘的输入键盘的输入产生一产生一条音讯条音讯扫描码、虚拟码以及其他与击键有关的音讯扫描码、虚拟码以及其他与击键有关的音讯设备驱动程序设备驱动程序截取键的扫描码截取键的扫描码翻译翻译虚拟码虚拟码第第24页页虚拟码虚拟码 虚拟码是一种与设备无关的键盘编码,它的值

11、存放在键盘音讯的虚拟码是一种与设备无关的键盘编码,它的值存放在键盘音讯的wParam参数参数中,用以标识哪一个键被按下或释放,最常用的虚拟码曾经在中,用以标识哪一个键被按下或释放,最常用的虚拟码曾经在Windows.h中中定义。定义。第第25页页常见虚拟码常见虚拟码常用的虚拟码符符号号常常量量名名称称等等价价的的键键盘盘键键或或鼠鼠标标按按钮钮符符号号常常量量名名称称等等价价的的键键盘盘键键或或鼠鼠标标按按钮钮VK_LBUTTON鼠鼠标标左左按按钮钮VK_BACK退退格格键键VK_RBUTTON鼠鼠标标右右按按钮钮VK_TAB制制表表键键VK_MBUTTON鼠鼠标标中中按按钮钮VK_RETUR

12、N回回车车键键VK_SHIFTShift 键键VK_CONTROLCtrl 键键VK_MENUAlt 键键VK_PAUSEPause 键键VK_CAPITALCaps Lock 键键VK_ESCAPEEsc 键键VK_PRIORPage Up 键键VK_NEXTPage Down 键键VK_ENDEnd 键键VK_HOMEHome 键键VK_LEFT左左键键头头键键VK_RIGHT右右箭箭头头键键VK_UP上上箭箭头头键键VK_DOWN下下箭箭头头键键VK_0VK_909 键键VK_AVK_ZAZ键键第第26页页键盘处置键盘处置取出键盘音讯进展处置取出键盘音讯进展处置音讯音讯设备驱动程序设备驱

13、动程序把音讯放到系统的把音讯放到系统的音讯队列中音讯队列中Windows从系统音讯队从系统音讯队列中取出音讯列中取出音讯发送到相应的线程音讯队列中发送到相应的线程音讯队列中窗口函数窗口函数第第27页页键盘音讯键盘音讯键盘音讯键盘音讯按键音讯按键音讯字符音讯字符音讯按下或松开一个键时按下或松开一个键时就产生了一按键音讯就产生了一按键音讯一个按键的组合产生了一个按键的组合产生了一个可以显示的字符时,一个可以显示的字符时,就产生了一个字符音讯就产生了一个字符音讯系统按键音讯系统按键音讯非系统按键音讯非系统按键音讯Alt键与相关输入键的组合键与相关输入键的组合产生的音讯,这些键普通产生的音讯,这些键普

14、通由由Windows系统内部直接系统内部直接处置,运用程序不处置处置,运用程序不处置不运用不运用Alt键组合键组合的按键音讯的按键音讯假设运用程序处置了这假设运用程序处置了这些系统键音讯,还要调些系统键音讯,还要调用用DefWindowsProc()函数,以便不影响系统函数,以便不影响系统对对它们的处置它们的处置第第28页页按键音讯按键音讯消息消息类型类型含义含义WM_KEYDOWN非系统非系统按下了非系统键消息按下了非系统键消息WM_KEYUP非系统非系统松开了非系统键消息松开了非系统键消息WM_SYSKEYDOWN系统系统按下了系统键消息按下了系统键消息WM_SYSKEYUP系统系统松开了

15、系统键消息松开了系统键消息第第29页页按键音讯的按键音讯的两个变量两个变量wParamlParam32位的变量位的变量反复计数位反复计数位015位位OEM扫描码扫描码1623位位扩展键标志扩展键标志24位位保管位保管位2528位位关联码关联码29位位键的先前形状位键的先前形状位30转换形状转换形状31位位包含了识别按下包含了识别按下的键的虚键码的键的虚键码第第30页页字符音讯字符音讯 在在WinMain函数的音讯循环中包含了函数的音讯循环中包含了TranslateMessage函数,其功能是把按键音讯转化为字符音讯,但只需当键函数,其功能是把按键音讯转化为字符音讯,但只需当键盘驱动程序把键盘字

16、符映射成盘驱动程序把键盘字符映射成ASCII码后才干产生码后才干产生WM_CHAR音讯。音讯。第第31页页消消 息息 类类 型型 含含 义义 W WM M_ _C CH HA AR R 非非 系系 统统 非非 系系 统统 字字 符符 W WM M_ _D DE EA AD DC CH HA AR R 非非 系系 统统 非非 系系 统统 死死 字字 符符 W WM M_ _S SY YS SC CH HA AR R 系系 统统 系系 统统 字字 符符 W WM M_ _S SY YS SD DE EA AD DC CH HA AR R 系系 统统 系系 统统 死死 字字 符符 字符音讯字符音讯系

17、统系统非系统非系统WM_KEYDOWN和和WM_KEYUP的按键音讯只能产生非系统音讯的按键音讯只能产生非系统音讯WM_SYSKEYDOWN和和WM_SYSKEYUP按键音讯只能产生系统音讯按键音讯只能产生系统音讯第第32页页输入焦点输入焦点n在鼠标运用中,在鼠标运用中,Windows经过标识光标下经过标识光标下的窗口来确定发给音讯的窗口的窗口来确定发给音讯的窗口n键盘音讯却是发送给有键盘音讯却是发送给有“输入焦点的窗口输入焦点的窗口n任何时候,只需一个窗口具有输入焦点任何时候,只需一个窗口具有输入焦点n主窗口、子窗口、控件都能够拥有输入焦点主窗口、子窗口、控件都能够拥有输入焦点第第33页页例

18、子例子挪动文本虚拟键挪动文本虚拟键挪动文本挪动文本Debug挪动文本挪动文本.exe第第34页页资源资源位图位图图标图标菜单菜单加速键加速键第第35页页位图位图nBMP位图位图n格式格式第第36页页第第37页页在资源文件在资源文件(*.rc)中定义位图中定义位图MY_PIC BITMAP snap294.bmp位图称号位图关键字位图文件名第第38页页内存设备环境内存设备环境HDC hdcmem=CreateCompatibleDC(hdc);DeleteDC(hdcmem)第第39页页位图的运用过程位图的运用过程1、定义、定义HBITMAP hBm;2、加载位图、加载位图hBm=LoadBit

19、map(hInstance,lpszName);在在WM_CCREATE音讯中获取内存设备音讯中获取内存设备环境环境Hdcmem=CreateCompatibleDC(hdc);3、选入内存设备环境、选入内存设备环境SelectObject(hdcmem,hbm);第第40页页4、输出、输出BitBlt第第41页页输出输出第第42页页获取位图根本数据获取位图根本数据GetObjectBITMAP bm;GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);第第43页页BITMAP构造构造typedef struct tagBITMAP / bm LONG

20、bmType; LONG bmWidth;LONG bmHeight;LONG bmWidthBytes;WORD bmPlanes;WORD bmBitsPixel;LPVOID bmBits; BITMAP; 第第44页页显示特效显示特效程度交错效果程度交错效果雨滴效果雨滴效果百叶窗效果百叶窗效果随机积木效果随机积木效果 第第45页页程度交错效果程度交错效果原理原理将内存设备情境对象中的位图数据拆分成将内存设备情境对象中的位图数据拆分成奇、偶扫描线两部分,其中奇数条扫描线奇、偶扫描线两部分,其中奇数条扫描线由上往下挪动,偶数条扫描线那么由下往由上往下挪动,偶数条扫描线那么由下往上挪动,且两者同时进展。屏幕上的效果上挪动,且两者同时进展。屏幕上的效果为分别由上下两端出现的较淡栅栏图形,为分别由上下两端出现的较淡栅栏图形,逐渐相互接近,直至整个位图完全清楚。逐渐相互接近,直至整个位图完全清楚。垂直交错效果的实现原理与之类似。垂直交错效果的实现原理与之类似。 第第46页页代码代码第第47页页雨滴效果雨滴效果原理原理将内存设备情境对象中位图数据的最后一将内存设备情境对象中位图数据的最后一条扫描线,顺序地从目的设备中待显示位条扫描线,顺序地从目的设备中待显示位图的第一条扫描线所在位置挪

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论