第四章《VC++编程中关于键盘和鼠标消息的响应》.pptVIP

第四章《VC++编程中关于键盘和鼠标消息的响应》.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章《VC编程中关于键盘和鼠标消息的响应》

德州学院 计算机系 Visual C++ 与面向对象程序设计 第4章 VC++编程中关于键盘与鼠标消息的响应 德州学院 计算机系 主讲教师 韩金姝 本章主要内容 键盘在应用程序中的应用 键盘操作应用举例 鼠标在应用程序中的应用 鼠标应用举例 例题和习题中涉及的函数 键盘在应用程序中的应用 键盘消息的生成 键盘在应用程序中的应用 键盘消息分类 按键消息 字符消息 输入焦点和插字符 按键消息 按键消息分类 系统按键消息: Alt键+相关输入键组合产生的消息。由Windows系统内部处理。WM_SYSKEYDOWN/ WM_SYSKEYUP 非系统按键消息: 不使用Alt键组合的消息。WM_KEYDOWN/ WM_KEYUP 按键消息 按键消息的构成: 包含扫描码、虚拟码以及其他与击键有关的消息。放在wParam和lParam中 虚拟码是与设备无关的键盘编码,其值存放在按键消息的wParam参数中(表4-1) lParam不同位数的含义(表4-2) 字符消息 WinMain函数的消息循环中TranslateMessage函数把按键消息转化为字符消息,当键盘驱动程序把键盘字符映射成ASCII码后,产生字符消息。(表4-3) 输入焦点和插字符 输入焦点 应用程序的众多窗口共享键盘,仅有一个窗口过程能接收键盘消息,称为有输入焦点的窗口。窗口函数通过捕获WM_SETFOCUS/ WM_KILLFOCUS消息以确定当前窗口是否具有输入焦点。 插字符 Windows操作系统用插字符指示当前正文位置。插字符是应用程序共享的系统资源。 只有拥有“输入焦点”的窗口才能拥有插字符。 键盘操作应用举例 例4-1(P51):键盘消息处理程序 单击一个键后,在窗口中依次显示出:按键消息、参数wParam的值,若为字符消息时,还显示出相应字母、重复记位数、OEM扫描码、扩展键标志、Alt键按下标志、按键的先前状态和转换状态等内容。 键盘操作应用举例 习题4.2(P69): 设计一个窗口,在该窗口中练习键盘的响应,要求如下: (1)单击键盘的向上箭头时,窗口中显示”You had hitted the up key” (2)单击shift键时,窗口中显示”You had hitted the SHIFT key” (3)单击Ctrl键时,窗口中显示”You had hitted the CTRL key” 鼠标在应用程序中的应用 鼠标是一种定位输入设备,有单击、双击和拖动功能。 WINDOWS中通过光标指示当前鼠标位置。系统预定义光标形式见表4-4 应用程序加载光标资源: 在定义窗口类或者在程序中调用LoadCursor(hThisInst,lpszCursorname) 鼠标在应用程序中的应用 鼠标消息的产生: Windows操作系统通过鼠标设备驱动程序接收鼠标输入。鼠标设备驱动程序在启动Windows时装入。 在窗口内有鼠标事件发生 窗口接收一个鼠标事件 产生用户区鼠标消息 常用的鼠标消息:表4-5 鼠标在应用程序中的应用 鼠标消息的构成: 通过lParam和wParam,可以确定鼠标的位置和鼠标键的状态。 lParam:包含鼠标坐标位置。 低位X;高位Y。 wParam:指示各种虚键状态的值。表4-6。 鼠标在应用程序中的应用 鼠标消息的处理: 1.非用户区鼠标消息: 当在一个窗口的用户区以外的地方(例如在窗框的菜单、滚动条、工具条和标题条等处)产生一个鼠标事件,就将产生一个非用户区鼠标消息。 非用户区鼠标消息,不由应用程序具体处理,而是送往DefWindowProc( )。 鼠标在应用程序中的应用 鼠标消息的处理: 2. 用户区鼠标消息: 处理时要考虑,鼠标左键按下同时检测Shift和Ctrl键: Case WM_LBUTTONDOWN: if (wParamMK_CONTROL)(wParamMK_SHIFT) …….. break; Case WM_LBUTTONUP: …….. break; 鼠标在应用程序中的应用 鼠标双击消息的处理: 若要使窗口函数能接收鼠标双击消息,在注册窗口时必须注明该窗口类具有CS_DBLCLKS属性。否则是两次双击 wndclass.style=CS_HEADRAW|CS_VERDARW|CS_DBLCLKS 双击的时间间隔:默认0.5s SetDoubleClickTime()重新设定 鼠标在应用程序中的应用 窗口对鼠标消息的捕

文档评论(0)

9885fp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档