- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
键盘函数您会发现用于判断键盘状态的函数对Windows应用程序是很有.doc
第三章概述
传统上,微软Windows平台为用户提供两种输入方式:键盘和鼠标。Windows CE继承了这 —方式,但在其人部分系统上,使川输入笔和触摸屏替代了鼠标。从程序角度看,这种变化很小, W为输入笔的消息已经被映射成Windows M:它版木巾使用的鼠标消息了。同PC版的Windows 比,Windows CE上一个很细微但乂很重要的变化足要么足只奋一个很小的键盘,要么根本没 有键盘。这种配置使笔忒输入对Windows CE更加重要了。
里然键盘在Windows CE中作川减少了,似键盘依然足诚入人量倍息的最好方法。即使像在 Pocket PC这类没有物理键盘的系统上,用广使用最多的也还是软键盘--在触摸屏上模拟键盘 的控件。基于此,除了极其特殊的Windows CE应用程序外,对键盘输入的适当操作是很重耍 的。S然在本书后面章节我会详细讨论软键盘,但有一点应该先提一下。对于hV:用程序,软键盘 的输入同传统硬件键盘的输入是没什么不同的。
输入焦点
在Windows操作系统下,冋时只有一个窗口拥有输入焦点。有焦点的窗口接收所有键盘输入, S到焦点切换到另外一个窗口。虽然系统使川很多规则來分配键盘焦点,但通常有焦点的窗II就 是当前活动窗口。活动窗门就足川户当前正在交互的顶层窗门。除了极少数例外,活动窗口通常 位于Z哗标的顶部,也就是说,活动窗口是绘制在系统里其它窗口上血的。在资源浏览器 (Explorer)沮,用户叶以按Alt-Esc键在程序间切换,以改变活动窗口,或者在任务栏里点 另一个顶S窗U的按钮来切换活动窗U。焦点窗U是活动窗U或者其子窗之一。
Windows K,程序可以通过调用GetFocus来判断哪个窗U拥有输入焦点,函数原型如下:
HWND GetFocus (void);通过调用SetFocus可以把焦点切换到另外一个窗口,函数原型如 下:HWND SetFocus (HWND hWnd);
在Windows CE下,对SetFocus的0标窗口打一些限制。通过SetFocus来获取焦点的窗M 必须足调用SetFocus的线程创建的窗U。该规则的一个例外足:如果失去焦点的窗丨I和即将获 得焦点的窗口足父子或兄弟关系,那即使这两个窗口足被不冋线程创建的,也可以切换焦点。
当窗口失去焦点时,Windows会给该如I发送WM_KILLFOCUS消息,通知窗口新的状态信 息。wParam参数则包含即将获得焦点的窗口句柄。获得焦点的窗口会收到WM_SETFOCUS 消息,消息的wParam参数含了失去焦点的窗口的句柄。
还要再叮嘱一下。程序不应该在没有用户输入的怙况下改变焦点窗口。否则,用户很容鉍变的迷 惑。SetFocus的一个适当用途是给活动窗口里的了窗口(更多是控件)设置输入焦点。在这种 情况下,程序让想接收键盘消息的窗口用其子窗口的句柄来调用SetFocus,以响应 WM_SETFOCUS 消息。
键盘消息
除了一些小的例外,Windows CE与桌面版的Windows具冇相同的键盘消息处理过程,当键 被按下,Windows给焦点窗U发送一系列消通常都是以WM_KEYDOWN消息开始的。如 果被按下的键代农诸如字母或数字等字符,Windows会在WM_KEYDOWN之后发送一个 WM_CHAR消息。(一些按键,例如功能键和光标键等,不代表字符,则不会发送WM_CHAR。 对这些按键,程序必须翻译WM_KEYDOWN消息来丫解这些按键是什么时候被按下的。)当 按键被释放,Windows会发送一个WM KEYUP消息。如果按键按的时间长一些,则动重C
功能就会开启,多条WM_KEYDOWN消息和WM_CHAR消息会被送出,fi到?后键被释放, 发出WM_KEYUP消息。当Alt键和另一个键-起被按下时,上而讨论的消息会被 WM_SYSKEYDOWN, WM_SYSKEYCHAR 和 WM_SYSKEYUP 消息替代。
对所奋这些消息,儿乎都按相同的方式使川参数wParam和IParam。对WM_KEYxx和 WM_SYSKEYxx消息,wParam包含虚拟键值,川于指出当前被按下的键。所有版本的 Windows都在键盘硬件和应用程序之间提供丫一个屮间层,用于把键盘返回的扫描码转换成虚 拟键盘值。农3-1列出了 VK_xx位及对应的键。迅然虚拟键农很大,但不是所冇表屮列的键都 能用于Windows CE设备。例如,作为PC键盘上很主要的键并列在虚拟键农屮的功能键,却 并没有出现在大部分Windows CE键盘上。实际上,PC键盘上的许多键都从空间受限的 Windows CE键盘上去除了。图3-1给出了通常很少用在Windows CE设备上的键列表,该 表只是告诉你这些键在Windows CE键盘上吋能不存在,
原创力文档


文档评论(0)