(Input Method Manager,简称IMM)

using Microsoft.WindowsCE.Forms;

InputPanel ip = new InputPanel();
foreach(InputMethod p in ip.InputMethods)
{
     treeView1.Nodes.Add(new TreeNode(p.Name));

}

这样可以得到系统中安装的所有输入法。比如我的是A4输入法及本机自带拼音手写输入法等。

在特定的输入框中,我们有时只需输入数字,或者英文,这样要对输入法“拼”“英”“符”等三项进行切换。需要使用到

BOOL ImmSetConversionStatus(
  HIMC hIMC,
  DWORD fdwConversion,
  DWORD fdwSentence
);

参数一:句柄

参数二: IMN_SETCONVERSIONMODE

Value Description

IME_CMODE_CHARCODE

Set to 1 if character code input mode; 0 if not.

IME_CMODE_EUDC

Set to 1 if EUDC conversion mode; 0 if not.

IME_CMODE_FULLSHAPE

Set to 1 if full shape mode; 0 if half shape mode.

IME_CMODE_HANJACONVERT

Set to 1 if HANJA convert mode; 0 if not.

IME_CMODE_KATAKANA

Set to 1 if KATAKANA mode; 0 if HIRAGANA mode.

IME_CMODE_NATIVE

Set to 1 if NATIVE mode; 0 if ALPHANUMERIC mode.

IME_CMODE_NOCONVERSION

Set to 1 to prevent processing of conversions by IME; 0 if not.

IME_CMODE_ROMAN

Set to 1 if ROMAN input mode; 0 if not.

IME_CMODE_SOFTKBD

Set to 1 if Soft Keyboard mode; 0 if not.

参数三: IMN_SETSENTENCEMODE

Value Description

IME_SMODE_AUTOMATIC

The IME carries out conversion processing in automatic mode.

IME_SMODE_NONE

No information for sentence.

IME_SMODE_PHRASEPREDICT

The IME uses phrase information to predict the next character.

IME_SMODE_PLURALCLAUSE

The IME uses plural clause information to carry out conversion processing.

IME_SMODE_SINGLECONVERT

The IME carries out conversion processing in single-character mode.


C/C++ code HIMC hImc;
DWORD dwConv, dwSent;
hImc = ImmGetContext(hwndTarget);
ImmGetConversionStatus(hImc, &dwConv, &dwSent);
if (ImmSetConversionStatus(hImc, IME_CMODE_ALPHANUMERIC, dwSent) == 0)
{
    // error
}
ImmReleaseContext(hwndTarget, hImc);


C# code

IntPtr hwndInput = ImmGetContext(this.Handle);
IntPtr dw1 = IntPtr.Zero;
IntPtr dw2 = IntPtr.Zero;
bool isSuccess = ImmGetConversionStatus(hwndInput, ref dw1, ref dw2);
if (isSuccess)
{
     int intTemp = dw1.ToInt32() & IME_CMODE_SOFTKBD;
     if (intTemp > 0)
          dw1 = (IntPtr)(dw1.ToInt32() ^ IME_CMODE_SOFTKBD);
     else
          dw1 = (IntPtr)(dw1.ToInt32() | IME_CMODE_SOFTKBD);
}
isSuccess = ImmSetConversionStatus(hwndInput, dw1, dw2);
ImmReleaseContext(this.Handle, hwndInput);

public const int IME_CMODE_SOFTKBD = 0x80;


唉!我内流满面啊!找了半天在Coredll.DLL中没有ImmSetConversionStatus现在在MSDN帮助中找到


// Set input mode for name text box to AlphaCurrent.
  InputModeEditor.SetInputMode(textBox1, InputMode.AlphaCurrent);

// Set input mode for phone number text box to Numeric.
  InputModeEditor.SetInputMode(textBox2, InputMode.Numeric);

// Set input mode for city text box to AlphaCurrent.
  InputModeEditor.SetInputMode(textBox3, InputMode.AlphaCurrent);
命名空间:Microsoft.WindowsCE.Forms

但是经测试发现,只支持设置smartphone的输入法,在ppc,wm5,wm6都是无效的。。。


继续郁闷,强人路过请指导一下!

Window mobile 软键盘输入法设置相关推荐

  1. 全面解析Android EditText以及软键盘的设置

    原创文章,转载请注明出处:http://blog.csdn.net/myth13141314/article/details/54972337 软键盘的行为可以通过修改对应Activity的andro ...

  2. Android 进入Activity禁止弹出软键盘输入法及stateHidden和stateAlwaysHidden的区别

    在开发中经常会遇到这样的问题,进入一个含Edittext的Activity后总是会自动弹出软件盘.但是有时候我们又不想让它弹出,因为影响美观,而且用户可能也会反感.最好的做法是刚进入时不让弹出,在用户 ...

  3. Android判断软键盘 输入法 是否显示

    文章目录 1.简介 2.判断原理 3.功能实现 3.文件参考 1.简介 1)判断界面上是否显示出软键盘 2)有软键盘隐藏,没有显示 2.判断原理 根据判断整体可见区域和整体界面的位置 3.功能实现 c ...

  4. Window调用软键盘方法

    1 调用运行界面 win + r 快捷键也行 2 输入osk,回车 3 华丽丽的软键盘 因为笔记本的B和Q键坏了,所以只能出此下次,记得固定在Window底下的任务栏中,方便随时显示

  5. Android自定义软键盘输入法,隐藏系统输入法显示光标的实现

    android实现自定义软键盘,先上图看效果,效果基本上是仿ios输入法实现的 这里是实现隐藏系统输入法,同时让EditText能获取光标的代码部分(通过反射调用): <span style=& ...

  6. Android中软键盘(输入法)收起的方法

    Android中隐藏软键盘的方法,下面是个工具类,直接调用方法即可 package com.Yhsh.util;import android.app.Activity; import android. ...

  7. 安卓强制关闭软键盘输入法

    Activity 中关闭软键盘 InputMethodManager imm = (InputMethodManager) mActivity.getSystemService(Context.INP ...

  8. next按钮源码android,Android Edittext 软键盘输入法回车键改成下一步Next

    软件盘中回车键默认功能是换行,但是有时候我们在Edittext中输完内容后点回车想要把焦点切到下一个Edittext继续输入,比如常见的登录页面,在输完用户名后,点回车调到输入密码输入框继续输入. 示 ...

  9. Android Edittext 软键盘输入法回车键改成下一步Next

    软件盘中回车键默认功能是换行,但是有时候我们在Edittext中输完内容后点回车想要把焦点切到下一个Edittext继续输入,比如常见的登录页面,在输完用户名后,点回车调到输入密码输入框继续输入. 示 ...

最新文章

  1. 知乎点赞工具使用教程
  2. string.Format 方法拼入{}
  3. 鸟哥的Linux私房菜(基础篇)-第五章、首次登陆与在线求助 man page
  4. android正则表达式隐藏邮箱地址中间字符
  5. c语言错误spawning,C语言一直出现Error spawning cl.exe的解决办法
  6. Ubuntu下mysql可视化_ubuntu上mysql有可视化界面吗 ubuntu mysql 图形界面
  7. Android开源项目第一篇——个性化控件(View)篇
  8. Win 10 下 android studio显示 Intel haxm无法安装,以及VT-X和hyper-x的冲突问题
  9. 微信小程序周记(第一周 7.19-7.25)
  10. 关于C++版本的海图渲染引擎MyS57Map
  11. 安装/卸载office2003出现“无法打开此修补程序包”错误
  12. 法国计算机高等工程师学院排名,法国人工智能专业大学排名(2020年USNEWS)_快飞留学...
  13. R语言逻辑回归的预测概率怎么算
  14. 【SAP-CO】CO模块主要子模块相关概念
  15. Selenium 设置带账号密码的socks5代理
  16. JZOJ5953. 【NOIP2018模拟11.5A组】生死之境
  17. PPT资源记录---怕换电脑忘记这些东西,先行记录一波
  18. Idea的C盘缓存文件.IntelliJldea2017.3 过大导致C盘空间不足解决方案
  19. Python基础之入门
  20. Javaweb 第5天 mysql 数据库课程

热门文章

  1. 条码打印软件如何实现条码数据彩色效果
  2. 解决之道:从互联网安全到IoT安全,如何关上潘多拉魔盒?
  3. linux 监听图形,Zabbix3.2+Grafana4.0实现可视化监控图形
  4. 外部中断器微型计算机课程设计,基于51单片机汇编语言的数字钟课程设计报告(含有闹钟万年历)...
  5. 区块链上市公司半年报: 41家进入实际应用及研究 5家瞄准供应链金融
  6. cad图纸怎么看懂_cad学习技巧:如何快速看懂图纸
  7. 我的 卡特尔16pf
  8. Java 工具类 - 身份证工具类 IDCardUtil
  9. LeetCode 题集:字典树
  10. python语言好不好_《python编程基础》这本书怎么样