前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Windows Mobile上实现自动拼写和匹配建议

在Windows Mobile上实现自动拼写和匹配建议

作者头像
ShiJiong
发布2018-01-11 12:25:54
7220
发布2018-01-11 12:25:54
举报

使用Windows Mobile手机的朋友,应该有一个体会,那就是要查找某个联系人,在输入目标联系人名字的过程中,系统会实时按照所输入的内容来筛选,呈现在列表中,供用户选择。同样,如果我们要直接拨打电话,在输入电话号码的过程中,系统也会实时地将输入的号码和联系人库进行比较,将匹配的联系人显示在列表中,供用户选择。

    大家不要小看了这一个功能,其实,在设备小巧、需要花费大力气来处理输入和输出的嵌入式设备上,用户对UI的体验是至关重要的。在我看来,这个自动拼写建议是非常有用的,至少目前很多软件(诸如各类输入法等)都有这个功能。那么,如何来实现这个功能呢?如何在自己的应用程序中添加这个Feature呢?大家看过christec的两篇Blog之后(这两篇Blog的链接我放在文章的最后),应该就会很清楚了。

    首先,我们需要了解的就是SHSetInputContext函数。为了在托管环境中使用,我们需要进行P/Invoke,具体代码如下:

代码语言:js
复制

using System.Runtime.InteropServices;

private enum SHIC_FEATURE : uint
{
 RESTOREDEFAULT = 0,

 AUTOCORRECT = 1,

 AUTOSUGGEST = 2,

 HAVETRAILER = 3,

 CLASS = 4
};


[DllImport("aygshell.dll")]

private static extern int SHSetInputContext(IntPtr hwnd,SHIC_FEATURE dwFeature,[MarshalAs(UnmanagedType.Bool)]ref bool lpValue);

    然后,在使用的时候,只要传布尔值给这个函数,如下面的代码,就是禁止auto suggestion:

代码语言:js
复制
bool value = false;
SHSetInputContext(textbox1.Handle,SHIC_FEATURE.AUTOSUGGEST,ref value);

为了做一个形象的说明,我们可以来试试。首先,新建两个联系人,如下图1所示:

图1:新建两个联系人

    然后,将模拟器和蜂窝仿真器建立联系,具体可以参考《Ring Tone Manager on Windows Mobile》。

    接着,启动我们的应用程序,给出的例子是这样的,我们可以发送短信息给某个朋友,在输入其姓名的过程中,系统会和联系人库进行比较,将匹配的人显示出来,供用户选择。如下图2所示:在Recipient中,我只输入了头一个字母“s”,在输入法的上方就出现了联系人中匹配的信息。

图2:输入联系人的自动建议

    同样,在输入信息的内容(Message)时,系统也会给出自动拼写建议,如下图3所示:

图3:输入信息内容的自动拼写建议

    另外,我们还可以选择是否将电池续航能力的信息发送给对方,如下图4所示:

图4:是否包含电池信息选项

    点击发送“send”,我们可以在蜂窝仿真器中看到信息,如下图5所示:

图5:蜂窝仿真器中的信息

参考链接:

Making auto suggestions more appropriate for your textbox

Programmatically set Input Context features

Ring Tone Manager on Windows Mobile

MSDN:SHSetInputContext

源代码下载:inputcontextsendsms.zip

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009-05-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档