提高用户体验的编程细节系列内容之自动切换输入法
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值控制
当用汉字的转化模式由 sentence 的值控制
代码
[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 值 |
DirectInput | 25 |
Hiragana | 25 |
Full Width Katakana | 27 |
Full Width Alphanumeric | 24 |
Half Width Katakana | 19 |
Half Width Alphanumeric | 16 |
模式 | 值 |
般 | 8 |
名 | 1 |
话 | 16 |
无 | 0 |
相关文章推荐
- 提高用户体验的编程细节系列内容之自动切换输入法
- 提高用户体验的编程细节系列内容之自动切换输入法 (http://www.cnblogs.com/mz121star/archive/2011/02/20/yonghutiyan.html)
- 良好的用户体验来源于贴心的功能(一)-谈如何设计记录用户切换的输入法
- [转]大型社区设计:提高用户体验的10个细节
- 在用户输入手机号或者要求输入纯数字时,输入法自动切换到数字的代码
- 大型社区设计:提高用户体验的10个细节
- 小交互细节如何显著提高用户的体验
- 大型社区设计:提高用户体验的10个细节
- 百度算法再更新 应把精力放在内容和用户体验细节上
- 提高用户体验的10个细节
- 游戏开发中切换网络时怎么提高用户体验
- 大型社区设计:提高用户体验的10个细节
- 上周技术关注:大型社区提高用户体验的10个细节
- 游戏开发中切换网络时怎么提高用户体验
- dephi 程序输入法根据用户的爱好自动切换的简便解决办法
- 大型社区设计:提高用户体验的10个细节
- 从细节提高用户体验,用户体验的76个要素
- 安卓智慧上海学习笔记系列——禁用ViewPager页面切换效果及不自动加载下一页数据
- HTML输入框优化以此来提高用户体验和易用度
- paip.提升用户体验----记住用户名与自动登录