第三章概述-read.docVIP

  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文档。上传文档
查看更多
第三章概述-read

第三章 概述 传统上,微软Windows平台为用户提供两种输入方式:键盘和鼠标。Windows CE继承了这一方式,但在其大部分系统上,使用输入笔和触摸屏替代了鼠标。从程序角度看,这种变化很小,因为输入笔的消息已经被映射成Windows其它版本中使用的鼠标消息了。同PC版的Windows比,Windows CE上一个很细微但又很重要的变化是要么是只有一个很小的键盘,要么根本没有键盘。这种配置使笔式输入对Windows CE更加重要了。键盘 虽然键盘在Windows CE中作用减少了,但键盘依然是录入大量信息的最好方法。即使像在Pocket PC这类没有物理键盘的系统上,用户使用最多的也还是软键盘--在触摸屏上模拟键盘的控件。基于此,除了极其特殊的Windows CE应用程序外,对键盘输入的适当操作是很重要的。虽然在本书后面章节我会详细讨论软键盘,但有一点应该先提一下。对于应用程序,软键盘的输入同传统硬件键盘的输入是没什么不同的。 输入焦点 在Windows操作系统下,同时只有一个窗口拥有输入焦点。有焦点的窗口接收所有键盘输入,直到焦点切换到另外一个窗口。虽然系统使用很多规则来分配键盘焦点,但通常有焦点的窗口就是当前活动窗口。活动窗口就是用户当前正在交互的顶层窗口。除了极少数例外,活动窗口通常位于Z坐标的顶部,也就是说,活动窗口是绘制在系统里其它窗口上面的。在资源浏览器(Explorer)里,用户可以按Alt-Esc键在程序间切换,以改变活动窗口,或者在任务栏里点另一个顶层窗口的按钮来切换活动窗口。焦点窗口是活动窗口或者其子窗口之一。 Windows下,程序可以通过调用GetFocus来判断哪个窗口拥有输入焦点,函数原型如下:HWND GetFocus (void);通过调用SetFocus可以把焦点切换到另外一个窗口,函数原型如下:HWND SetFocus (HWND hWnd); 在Windows CE下,对SetFocus的目标窗口有一些限制。通过SetFocus来获取焦点的窗口必须是调用SetFocus的线程创建的窗口。该规则的一个例外是:如果失去焦点的窗口和即将获得焦点的窗口是父子或兄弟关系,那即使这两个窗口是被不同线程创建的,也可以切换焦点。 当窗口失去焦点时,Windows会给该窗口发送WM_KILLFOCUS消息,通知窗口新的状态信息。wParam参数则包含即将获得焦点的窗口句柄。获得焦点的窗口会收到WM_SETFOCUS消息,消息的wParam参数包含了失去焦点的窗口的句柄。 还要再叮嘱一下。程序不应该在没有用户输入的情况下改变焦点窗口。否则,用户很容易变的迷惑。SetFocus的一个适当用途是给活动窗口里的子窗口(更多是控件)设置输入焦点。在这种情况下,程序让想接收键盘消息的窗口用其子窗口的句柄来调用SetFocus,以响应WM_SETFOCUS消息。 键盘消息 除了一些小的例外,Windows CE与桌面版的Windows具有相同的键盘消息处理过程,当键被按下,Windows给焦点窗口发送一系列消息,通常都是以WM_KEYDOWN消息开始的。如果被按下的键代表诸如字母或数字等字符,Windows会在WM_KEYDOWN之后发送一个WM_CHAR消息。(一些按键,例如功能键和光标键等,不代表字符,则不会发送WM_CHAR。对这些按键,程序必须翻译WM_KEYDOWN消息来了解这些按键是什么时候被按下的。)当按键被释放,Windows会发送一个WM_KEYUP消息。如果按键按的时间长一些,则自动重复功能就会开启,多条WM_KEYDOWN消息和WM_CHAR消息会被送出,直到最后键被释放,发出WM_KEYUP消息。当Alt键和另一个键一起被按下时,上面讨论的消息会被WM_SYSKEYDOWN、WM_SYSKEYCHAR和WM_SYSKEYUP消息替代。 对所有这些消息,几乎都按相同的方式使用参数wParam和lParam。对WM_KEYxx和WM_SYSKEYxx消息,wParam包含虚拟键值,用于指出当前被按下的键。所有版本的Windows都在键盘硬件和应用程序之间提供了一个中间层,用于把键盘返回的扫描码转换成虚拟键盘值。表3-1列出了VK_xx值及对应的键。虽然虚拟键表很大,但不是所有表中列的键都能用于Windows CE设备。例如,作为PC键盘上很主要的键并列在虚拟键表中的功能键,却并没有出现在大部分Windows CE键盘上。实际上,PC键盘上的许多键都从空间受限的Windows CE键盘上去除了。图3-1给出了通常很少用在Windows CE设备上的键列表,该表只是告诉你这些键在Windows CE键盘上可能不存在,但并不是说绝对不存在。 表3-1:虚拟键 略 图3-1:PC键盘中很少用于Windo

文档评论(0)

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

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

1亿VIP精品文档

相关文档