Windows CE应用程序设计(张勇)ZXM20120520 第8章.ppt

Windows CE应用程序设计(张勇)ZXM20120520 第8章.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
     8.1 键 盘   少数Windows CE设备具有硬键盘,键盘的布局一般符合“QWERTY”键盘布局,与桌面计算机的键盘布局基本相同,只是键面缩小到适合嵌入式设备的大小。   Windows CE设备中对键盘的处理也与桌面Windows系统相同,即当按下键码时,Windows CE将发送表征按键事件的消息给具有输入焦点的窗口:当键按下时,发送WM_KEYDOWN消息,然后,发送WM_CHAR消息;当键按住一段时间时,会连续发送WM_KEYDOWN和WM_CHAR消息;当键抬起时,发送WM_KEYUP消息。如果按键的同时按下了Alt键,以上的消息为WM_ SYSKEYDOWN、WM_SYSCHAR和WM_SYSKEYUP。   消息WM_KEYDOWN、WM_KEYUP、WM_ SYSKEYDOWN、WM_SYSKEYUP的wParam参数返回按键的虚拟键码,lParam参数指示按键的重复次数、扫描码、Alt键是否被按下、该键的前一个状态以及按键的切换状态等。即   nVirtKey = (int) wParam;   lKeyData = lParam;   每个按键均有不同于其他按键的唯一的虚拟键码,有相当一部分虚拟键码与按键字符的ASCII码相同,例如,按键0至9的虚拟键码为十六进制30至39,按键A至Z的虚拟键码为十六进制41至5A(注意:没有小写字母的按键)。在“帮助|索引”中输入“Virtual-Key Codes”可查看到所有按键的虚拟键码。   消息WM_CHAR和WM_SYSCHAR的wParam参数返回按键的Unicode码,lParam参数的返回值与WM_ KEYDOWN相同,即   chCharCode = (TCHAR) wParam;   lKeyData = lParam;   注意,当向编辑框控件输入文本时,由于这类控件封装了对按键消息的处理,所以,不需要显式地编写按键消息处理过程。   此外,Windows CE系统也提供了一些按键过程,例如,GetKeyState、GetAsyncKeyState、MapVirtualKey等,在“帮助|索引”中输入“Keyboard Reference”可查看所有预定义的按键处理过程。      8.2 辅助输入面板   辅助输入面板图标位于窗口下部状态栏的中部,用户点击该图标可以打开和隐藏输入面板,应用程序也可以调用SipShowIM过程显示和隐藏输入面板,即   BOOL SipShowIM( DWORD dwFlag ); 其中,参数dwFlag取为SIPF_ON表示显示输入面板;取为SIPF_OFF表示隐藏输入面板。显示或隐藏输入面板将导致Windows CE操作系统向应用程序主窗口发送WM_ SETTINGCHANGE消息,此时,消息的wParam参数被置为SPI_SETSIPINFO;当改变输入面板中的默认输入法时,消息的wParam参数被置为SPI_SETCURRENTIM。然后,调用SipGetInfo过程获得输入面板的状态信息,该过程的原型为   BOOL SipGetInfo( SIPINFO *pSipInfo ); 其中,参数pSipInfo为指向SIPINFO结构体的指针,SIPINFO结构体的声明为: 其中,cbSize为结构体大小,用sizeof(SIPINFO)赋值。fdwFlags为输入面板的状态信息,可以取SIPF_DOCKED,表示输入面板位置锁定;取SIPF_LOCKED表示输入面板状态锁定,用户不能改变其可视状态;取SIPF_OFF设置输入面板不可见;取SIPF_ON显示输入面板。参数rcVisible Desktop为矩形区域对象,表示没有被输入面板遮挡的工作区。矩形参数rcSipRect则表示输入面板占居的窗口区域。参数dwImDataSize表示指针参数pvImData指向的定义输入法区域的大小。   常用的与输入面板相关的过程还有:   BOOL SipSetInfo( SIPINFO *pSIPInfo );   BOOL SipGetCurrentIM( CLSID *pClsid );   BOOL SipSetCurrentIM( CLSID *pClsid ); 其中,SipSetInfo设置输入面板的状态信息;SipGet CurrentIM和SipSetCurrentIM用于获取或设置当前的输入法,其参数为指向类标识符(CLSID)的指针。     8.3 输?入?法?实?例   输入法实例的工作环境如图8-1所示,包括六个程序文件,即资源文件mySIP.rc、头文件mySIP.h、主程序入口文件mySIP.cpp、主窗口过程文件mainWndP

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档