我有一个带有WindowsMobile6.5操作系统的智能设备,我想用.Net CF3.5和C#语言为这个设备编写一个应用程序。这个设备的键盘看起来就像这张图片:
正如你在最上面的图片中所看到的,文本和数字都放在同一个键上。例如,2有“ABC”,如果我们想写任何以‘A’开头的东西,我们需要输入一次键2。如果我们想要键入‘B’,按两次键2和三次输入‘C’。
Q1.我不能用这个键盘打字英文字母,我只会打字数字。我想在文本框中键入英文字母(还有波斯语字母)。我能用keybd_event()
做这个工作吗?它是extern
函数吗?
Q2.我有3种输入字符的方法,同时必须启用其中一种方法:
在其他人手中如何在这三种方法之间切换
Q3.如何根据3种输入法中的一种,用适当的字符显示键盘?(一次用英语,另一次用波斯语,另一次用数字)
问候
发布于 2015-01-31 17:00:46
如果在一个应用程序(Compact )中只需要特殊的密钥解释,那么可能使用SDF (SmartDeviceFramework)才是可行的。见KeyTest3AKsdf on http://www.hjgode.de/wp/2012/09/20/windows-mobile-cf-how-to-catch-f1-and-f2-in-weh/
在Message中,您需要管理键盘平面(数字、英文字母、波斯字母),并且可能需要按下键超时,以确定一个键是否在一段时间内多次按下(以产生这些ABC可选输出)。
定义一个键或组合来在两个平面之间切换。
注意收到的信息,然后决定该做什么。您可以更改消息的副本,将其发送到消息队列并返回true,以便让windows系统知道您处理了该消息。
您可以将keybd_event用于winuser.h和winuserm.h中定义的简单键。但是对于扩展的字符,这将变得复杂(找到正确的值序列)。我将与PostMessage和WM_CHAR一起寻找扩展符号和字母。
此外,您可能需要安装一个真正的字体与波斯字体。默认的英语操作系统fimrware通常只支持unicode符号的子集。另见http://www.hjgode.de/wp/2011/04/06/mobile-development-a-simple-unicode-character-map/
https://stackoverflow.com/questions/28247275
复制相似问题