1. 1、本文档共67页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7-9章1

第7章 系统的输入设备 鼠标和键盘是Windows系统基本的输入设备。Windows很大程度上是基于鼠标的操作系统,所有的Windows程序都应当响应鼠标输入,Windows 98 /2000操作系统本身也不例外。Visual C++ 6.0提供了大量的处理鼠标消息的函数,这些函数将在后面详细地讲到。 键盘是用户把字符输入到计算机的设备,没有键盘就不能正常地运行Windows系统。在本章中,我们将介绍采用键盘和鼠标作为应用程序的基本输入设备时所涉及的基本概念和编程原则。 7.1 鼠标的应用 在图形操作系统中,鼠标是最重要的输入设备之一。现在市场上常见的鼠标,根据工作原理不同可分为机械式鼠标、光电式鼠标和激光式鼠标;根据按键个数的不同,可以分为两键鼠标和三键鼠标。由于在Windows图形操作系统中,鼠标发挥了强大的威力,因而对它的控制与使用越来越受到用户的重视。好在Windows 98/2000为用户提供了统一的鼠标编程接口,因而用户不必过多的了解其底层的知识,我们只针对不同的鼠标消息进行处理即可。接下来,我们将学习一些与鼠标相关的基本概念。 7.1.1 鼠标消息 Windows是基于消息传递、事件驱动的操作系统。当用户移动鼠标、按下或释放鼠标键时,都会产生鼠标消息。根据鼠标所处的位置不同——窗口的客户区或非客户区,Windows系统产生的鼠标消息分为两大类:客户区域的鼠标消息、非客户区域的鼠标消息。 1.客户区域鼠标消息 当鼠标指针通过应用程序窗口的客户区域时,Windows会发送客户区域鼠标消息到应用程序中。客户区域鼠标消息是用户可以在Windows应用程序中正常处理的信息。例如,当用户移动鼠标通过应用程序窗口的客户区域(在应用程序中能画图的窗口区域)时,应用程序会接收一连串的WM_MOUSEMOVE消息,这些消息不仅告诉应用程序鼠标在移动,而且还告诉应用程序在Windows产生消息时鼠标的位置。 当鼠标移动到应用程序窗口的客户区域外面时,应用程序则停止接收客户区域的鼠标消息,而Windows会把鼠标消息发送给鼠标碰巧通过的元素(包括桌面)。当鼠标移回到窗口的客户区域时,Windows会重新把鼠标消息发送方向指向应用程序(在应用程序已经捕获了鼠标时例外,这意味着即使当鼠标位于该应用程序窗口外,Windows也指示发送所有鼠标消息给该应用程序)。 应用程序可以接收十种客户区域鼠标消息,表7-1列举了这些消息和关于它们的描述。 表7-1 客户区域鼠标按键消息 消 息 说 明 WM_LBUTTONDBLCLK 鼠标左键被双击 WM_LBUTTONDOWN 鼠标左键被按下 WM_LBUTTONUP 鼠标左键被释放 WM_MBUTTONDBLCLK 鼠标中间键被双击 WM_MBUTTONDOWN 鼠标中间键被压下 WM_MBUTTONUP 鼠标中间键被释放 WM_MOUSEMOVE 鼠标移动穿过客户区域,可用表3-4的值 WM_RBUTTONDBLCLK 鼠标右键被双击 WM_RBUTTONOWN 鼠标右键被压下 WM_RBUTTONUP 鼠标右键被释放 2.非客户区鼠标消息 在Windows中,除了客户区以外的部分都是非客户区,Windows会给应用程序发送非客户区域鼠标消息。当鼠标通过除客户区域以外的应用程序窗口的任何区域时,就会产生与客户区域鼠标消息相类似的鼠标消息。例如,当鼠标通过窗口的标题栏或控制按钮时,应用程序会接收非客户区域鼠标消息。大部分应用程序不处理非客户区域鼠标消息,因为它们可以被Windows操作系统本身妥善地处理。例如,当用户双击窗口的标题栏时,Windows会使窗口的尺寸大小恢复到它原有的设置。 通常,读者不要干涉Windows对非客户区域鼠标消息的默认处理。因为如果干涉了这种处理时,应用程序的窗口也许会被冻结,不能按用户所期望的情况响应用户。然而,有时当响应非客户区域时,鼠标消息会使用程序执行额外的功能,例如应用程序也许会为增强窗口工具栏响应鼠标的方式而捕获非客户消息。 一般情况下,应用程序不必考虑非客户区域鼠标消息。然而,为了防止遇到麻烦,有的应用程序可以接收十个非客户区域鼠标消息,如表7-2所示,它们和客户区域的消息类似。 表7-2 非客户区域鼠标按键消息 消 息 说 明 WM_NCLBUTTONDBLCLK 鼠标左健被双击 WM_NCLBUTTONDOWN 鼠标左键被按下 续表 消 息 说 明 WM_NCLBUTTONUP 鼠标左键被释放 WM_NCMBUTTOND

文档评论(0)

糖糖 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档