此文仅用来记录这个项目的坎坎坷坷.首次写博客,排版措辞什么的多多包涵.
说到文本编辑框必然是一个可接受输入的控件.那么我们先完成控件接受输入的功能
先创建一个控件
public class CodeEdit : UserControl
{
}
我们的控件不应只能接受英文输入,还应该接受中文输入.所以我们使用ImmAssociateContext来获取输入.
创建Imm类来完成接收输入.
class ImmManage
{
#region 事件
/// <summary>
/// 输入文本事件
/// </summary>
public delegate void EventInputText(char ch);
/// <summary>
/// 输入文本事件
/// </summary>
public event EventInputText InputText;
#endregion
#region 私有字段
IntPtr hIMC;
IntPtr handle;
private const int WM_IME_SETCONTEXT = 0x0281;
private const int WM_CHAR = 0x0102;
#endregion
#region 构造方法
public ImmManage(IntPtr handle)
{
hIMC = ImmGetContext(handle);
this.handle = handle;