admin管理员组

文章数量:1634468

背景

最近在做一个项目,用户端是触摸屏,涉及到一些表单数据的操作,因为是没有外接的鼠标键盘,所以想着当用户在操作表单的时候,能够把软件键盘输入法给调出来使用。

什么是触滑输入法

触滑输入法Swype,是针对触摸屏这种输入方式的革命性改进产品,Swype根据滑动的轨迹,智能分析并自动拼写出所输入的单词。由于这种输入方式不需要手指离开屏幕,因此被人称作滑行输入。

网上找了下,发现了多文输入法是不错的选择,还有对应的sdk,看了下介绍。专为触控一体机设计的智能输入法,包含有以下功能: →进入新站点 支持全键盘、九宫格(T9模式)智能拼音、身份证键盘,数字键盘等。支持手写识别。支持智能笔画(T9笔画)。可以...

于是说干就干。

代码实现

1、加载动态库

private const int WM_COPYDATA = 0x004A;
        // 结构定义 
        public struct CopyDataStructIN
        {
            public IntPtr dwData;
            public int cbData;
            public IntPtr lpData;
        }


        //1
        [DllImport("dwApiLib.dll", EntryPoint = "DWAPI_SendCmdA", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
        private static extern bool DWAPI_SendCmdA(StringBuilder fullPath);


        [DllImport("User32.dll")]
        public static extern int RegisterWindowMessage(string Name);

2、设置开机启动

private void Form1_Load(object sender, EventArgs e)
        {
            // 输入法主程序:DWMain.exe
            // 它应该是随电脑开机启动,如果没有启动,你也可以在这里启动它。
            // 路径:安装目录\bin\windwos32\DWMain.exe


            textBox2.LostFocus += new EventHandler(txt_LostFocus); //失去焦点后发生事件
            textBox2.GotFocus += new EventHandler(txt_GotFocus);  //获取焦点前发生
        }

3、鼠标在文本框的时候,调用显示方法

// 显示
        private void buttonShow_Click(object sender, EventArgs e)
        {
            DWAPI_SendCmdA(new StringBuilder("show"));
        }

4、离开的时候,退出输入法

// 退出输入法
        private void buttonClose_Click(object sender, EventArgs e)
        {
            DWAPI_SendCmdA(new StringBuilder("close"));
        }

效果图如下

-

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

本文标签: 触摸屏输入法键盘功能