您的位置:首页 > 编程语言

提高用户体验的编程细节系列内容之自动切换输入法

2011-02-20 00:20 696 查看
如果在你的程序里需要输入很多的内容,比如各类单据,如果在进入每一个录入框的时候都能自动把输入法切换到合适的状态将会是一个很酷的特性,相比炫丽的界面而言打字到手抽筋的录入人员们对此会更加感兴趣。在winform中切换输入法是很简单的事情:

代码

[DllImport("imm32.dll")]

public static extern IntPtr ImmGetContext(IntPtr hWnd);

[DllImport("imm32.dll")]

public static extern bool ImmGetConversionStatus(IntPtr hIMC,

ref int conversion, ref int sentence);

[DllImport("imm32.dll")]

public static extern bool ImmSetConversionStatus(IntPtr hIMC, int conversion, int sentence);

foreach (InputLanguage iL in InputLanguage.InstalledInputLanguages)

{

if (iL.LayoutName == "中文(简体)-搜狗拼音输入法")

{

InputLanguage.CurrentInputLanguage = iL;

break;

}

}

IntPtr prt = ImmGetContext(this.Handle);

int iMode = 1033;

int iSentence = 0;

if (!ImmSetConversionStatus(prt, iMode, iSentence))

{

MessageBox.Show("change error");

}

的代码:

首先注册Win32API的方法

这样就能把输入法确定为搜狗拼音,且为全角的数字符号和英文,且标点符号为中文标点。

日文输入法的值

日文输入法的假名和全半角模式由mode值控制

模式mode 值
DirectInput25
Hiragana25
Full Width Katakana27
Full Width Alphanumeric24
Half Width Katakana19
Half Width Alphanumeric16
当用汉字的转化模式由 sentence 的值控制

模式
8
1
16
0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: