using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace SmartPhone
{
/// <summary>
///InputModeEditor的摘要說明。
/// </summary>
public class InputModeEditor
{
public InputModeEditor()
{
//
// TODO: 在此處添加建構函式邏輯
//
}
[DllImport("coredll.dll", EntryPoint="GetCapture")]
private static extern IntPtr GetCapture();
[DllImport("coredll.dll", EntryPoint="GetWindow")]
private static extern IntPtr GetWindow(IntPtr hWnd, int uCmd);
[DllImport("coredll.dll", EntryPoint="SendMessage")]
private static extern uint SendMessage(IntPtr hWnd, uint msg, uint wParam, uint lParam);
const uint EM_SETINPUTMODE = 0x00DE;
const int GW_CHILD = 5;
const uint LB_SETCURSEL = 0x0186;
public static void SetInputMode(Control ctrl, InputMode mode)
{
ctrl.Capture = true;
IntPtr h = GetCapture();
ctrl.Capture = false;
IntPtr hEditbox = GetWindow(h, GW_CHILD);
SendMessage(hEditbox, EM_SETINPUTMODE, 0, (uint)mode);
}
public enum InputMode
{
EIM_SPELL = 0,//英文
EIM_AMBIG = 1,//拼音
EIM_NUMBERS = 2,//數字
EIM_TEXT = 3,//拼音
}
}
}
要注意的是 OpenNETCF.org的工具包的WindowsCE.Forms以及Microsoft.WindowsCE.Forms,都只能用於Poacket PC 2003和Windows Mobile 5.0,其他版本的作業系統必須按照上述寫法來書寫代碼才能調試通過