Visual Studio 2008.NET 3.0Visual Studio 2005.NET 2.0.NET 3.5Windows Forms中级开发Visual Studio.NETVisual Basic
管理 Windows XP 屏幕键盘
Windows XP 提供了一个屏幕键盘,但有时需要进行一些自定义。
引言
我正在开发一个用于面板电脑的应用程序,客户要求仅使用触摸屏输入应用程序所需的所有数据。 我最初的想法是手动设计一个包含与常规键盘一样多按钮的窗体,但我立刻改变了主意。 之后,在网上搜索后,我决定使用 Windows XP 提供的标准屏幕键盘。
背景
当你启动屏幕键盘 (OSK.EXE) 时,你首先会注意到它对于现代显示器的分辨率来说太小了,但 OSK 不允许你调整其大小。 可以使用 SetWindowPos
API 轻松解决此问题,以设置所需的大小和位置。 屏幕键盘呈现为普通的应用程序,因此它具有带有控制框和菜单的窗口框架。 如果用户单击关闭按钮(窗口关闭),控制框可能会导致键盘应用程序关闭,并且菜单对于正常数据输入而言毫无用处。 然而,窗口框架和菜单会占用屏幕区域。 但是如何删除这些元素? SetWindowLong
API 可以完成这项工作。
Using the Code
该类公开了三个共享方法:
'Shows the keyboard creating the process if necessary
ClKeyboard.Show()
'Hides the keyboard without killing the process
ClKeyboard.Hide()
'Kill the process that manages the keyboard
ClKeyboard.Kill()
当你调用 Show
时,键盘会出现在屏幕底部,就在任务栏上方,高度为 350 像素,而宽度与屏幕宽度匹配。 这些参数在类中硬编码,但可以轻松更改。
希望你喜欢这个类。
历史
- 2009 年 4 月 22 日:初始发布