- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4(CEN)第四章 Windows应用程序对键盘与鼠标的响应
第6章 Windows应用程序中的键盘与鼠标 Huang Weitong 对于鼠标消息的处理 要对Shift和Ctrl键进行监测 case WM_LBUTTONDOWN: //按下鼠标左键 if((wParamMK_CONTROL)(wParamMK_SHIFT)) … //Shift和Ctrl键都被按下 break; case WM_LBUTTONUP: //释放鼠标左键 … break; … case WM_LBUTTONDOWN: //按下鼠标左键 … break; case WM_LBUTTONUP: //释放鼠标左键 … break; … 不监测 Windows系统默认的时间间隔为0.5秒,也可以调用SetDoubleClickTime()重新设定间隔值 若窗口不包含上述属性的定义,即使进行了双击操作,该窗口也只能接收到两条WM_BUTTONDOWN消息或两条WN_BUTTONUP消息。 鼠标双击 wndclass.style=CS_HEADRAW|CS_VERDRAW|CS_DBLCLKS; 要使窗口函数能接收 鼠标双击产生的消息, 在注册窗口类时必须 具有CS_DBLCLKS属性 由于鼠标移动的随机性,如果要使某一个窗口能不间断地捕获鼠标消息,就必须对鼠标加以捕获。 SetCapture(hWnd):可以向句柄为hWnd的窗口发送所有的鼠标消息 调用SetCapture()函数 一旦从窗口捕获了鼠标, 系统的键盘功能就暂时失 效,其它窗口也无法得到 鼠标消息 当该窗口不再需要捕获鼠标消息时,应及时调用ReleaseCapture()以释放鼠标,否则,其他窗口无法接收鼠标信息。 菜单、滚动条 工具条和标题条等处 不由应用程序处理而是送往函数DefWindowProc 用户区以外的地方产生的鼠标事件 产生一个非用户区鼠标消息 鼠标实例1:鼠标输入示范程序,本例介绍如何响应鼠标信息、并改变光标形状等用法,用户在窗口的不同区域移动鼠标时,光标将显示如下图所标识的不同箭头的形状 * * 第八章 Windows应用程序对键盘与鼠标的响应 扫描码是依赖于具体设备的,为达到设备无关性的要求,往往使用与具体设备无关的虚拟码,虚拟码是由Windows系统定义的与设备无关的键的标识。 键盘上的键 对应 一个唯一的标识值(扫描码) 按下或释放某键时 产 生 8.1 键盘在应用程序中的应用 由于键盘的输入 产生一条消息 扫描码、虚拟码以及其他与击键有关的消息 设备驱动程序 截取键的扫描码 翻译 虚拟码 它包含 取出键盘消息进行处理 消息 设备驱动程序 把消息放到系统的消息队列中 Windows从系统消息队列中取出消息 发送到相应的线程消息队列中 窗口过程 虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的wParam参数中,用以标识哪一个键被按下或释放,最常用的虚拟码已经在Windows.h中定义。 操作系统在接收到键盘输入后 把消息发送给具有“输入焦点(input focus)的窗口 应用程序一般有几个窗 口,但当按下某一个键 时,只有一个窗口能接 收到该键盘消息,接收 这个键盘消息的窗口称 为有“输入焦点”的窗口 有“输入焦点” 的窗口应是活 动窗口或者活 动窗口的子窗口 窗口正在接 收输入焦点 窗口函数通过捕获WM_SETFOCUS和WM_KILLFOCUS消息确定当前窗口是否具有输入焦点。 窗口失去 输入焦点 键盘消息 按键消息 字符消息 按下或松开一个键时 就产生了一按键消息 一个按键的组合产生了 一个可以显示的字符时, 就产生了一个字符消息 系统按键消息 非系统按键消息 Alt键与相关输入键的组合 产生的消息,这些键一般 由Windows系统内部直接 处理,应用程序不处理 若应用程序处理了这 些系统键消息,还要调 用DefWindowsProc()函 数,以便不影响系统对 它们的处理 不使用Alt键组合 的的按键消息 按键消息的两个变量 wParam lParam 32位的变量 重复计数位(0~15位) OEM扫描码(16~23位) 扩展键标志(24位) 保留位(25~28位) 关联码(29位) 键的先前状态(位30) 转换状态(31位) 包含了识别按下 的键的虚键码 在WinMain函数的消息循环中包含了TranslateMessage函数,其功能是把按键消息转化为字符消息,但只有当键盘驱动程序把键盘字符映射成ASCII码后才能产生WM_CHAR消息。 字符消息 系统 非系统 WM_KEYDOWN和WM_KEYUP 的按键消息只能产生非
您可能关注的文档
最近下载
- 2024年春学期部编版小学语文五年级下册教学计划附教学进度表精华版.pdf VIP
- 多因子选股系列研究之十八:成交量激增与骤降时刻的对称性与“一视同仁”因子构建.pdf
- 欣赏《月光》 示范课教学课件【人音版九年级音乐下册】.pptx
- 《眼镜镜片防雾性能测试规范(报批稿)》.pdf
- 2025年党组理论学习中心组学习计划文稿3篇.docx VIP
- 初中英语课外阅读黑布林版时光隧道中文译文.docx
- 2024年宁波象山县水务集团有限公司招聘笔试真题.docx VIP
- 经典童话故事英文绘本-灰姑娘.ppt
- 南通科技职业学院2024年提前招生校测样卷及答案(含语文、数学).pdf VIP
- 《元宵节》优质PPT课件.ppt
文档评论(0)