最近开发了一个触摸屏小软件,由于需要使用键盘输入所有研究了一下软件盘。效果如下图。
参考了前人的经验,做一下总结。
关键问题分析:
1)、软件盘需要做成浮动式工具。关键点是不能让其抢占主程序的焦点。
2)、输入光标的位置以及输入字符的处理。
解决方式:
1)、解决问题点1。重新Create Params方法,并在界面初始化时调用。将this.TopMost = true;加上。此方法在win 10 不好用。
private const int WS_EX_TOOLWINDOW = 0x00000080;
private const int WS_EX_NOACTIVATE = 0x08000000;
protected override CreateParams CreateParams
{
get {
CreateParams cp = base.CreateParams;
cp.ExStyle |= (WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW);
cp.Parent = IntPtr.Zero;
return cp;
}
}
2)、解决问题点2。(待解决,后续补上)
附上源码,需要一起学习交流的可以下载参考。如有不足,请多多指教
下载地址:https://download.csdn.net/download/zdx1348611692/11057666
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!