[VB.NET]问一个键盘的模拟问题,如何做一个画面键盘来代替微软的软键盘,有点难度呀!!!

来源:互联网 发布:网络机顶盒推荐 编辑:程序博客网 时间:2024/04/25 14:51
VB.NET源码-156个实用实例哦……<script type="text/javascript"><!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
问一个键盘的模拟问题,如何做一个画面键盘来代替微软的软键盘,有点难度呀!!!
各位好,我现在想用自己的画面来实现一个键盘功能.就是当用手点触摸屏幕画面中的A按钮时候(A按钮是我自己画的一个按钮),能够象点微软的软件盘上的按键 A 一样的功能.这样就可以完全代替微软的软件盘了.
请问该怎么调用API,或者如何实现呢?
如果有在WINCE环境下的实现方法更好.
__________________________________________________________________________
俺认为:
这个,触摸屏本身有驱动的吧,应该跟鼠标是一样用的。我做过触摸屏的,但是我忘了

手摸就相当于鼠标点

方法1 :图形按钮问题,画一张大图,包括所有按钮的图,所有按钮的区域都保存起来
然后在图中的鼠标Down或up的事件里 捕获鼠标的位置,去查保存的按钮区域,查到就实现该按钮的功能。

方法2:form里放你的大图,按钮全截成小图,放个picturebox在form上,picturebox调小图,边设为0,当然必须对准大图的位置。事件就是picturebox的鼠标down或者什么的事件
好像也有imagebutton可以实现吧,不太记得了,你去试试 对了,imagebutton的好处是按下去的时候可以变化为向下的图(要不要自己做,我也不记得了)

方法1比较麻烦,要写比较多的代码,不建议用。
__________________________________________________________________________
我在VB里面做了一个,也是给触摸屏用的,我是在需要输入的地方就调用我的“键盘”form,这个窗体上面就是一些字母的按钮,在每个按钮的单击事件里面将此按钮代表的按键值sendkey,并将焦点设置到刚刚调用的地方,使用这种方式,当输入英文的时候没有问题,但是输入中文的时候就有了问题,因为每次按键的时候焦点都转移了,但是汉字还没有输入完成,后来我发现使用紫光拼音却可以,但是前提是,必须在调用“键盘”之前就的把紫光调用出来。
__________________________________________________________________________
你在调用“键盘”之前 SendKeys( Ctrl+Space )或者你给紫光定义的其它组合键,先把紫光调出来不就ok了
__________________________________________________________________________
谢谢各位的指点,我试了一下,发现用PictureBox或者用Panel的MouseDown事件,可以实现光标不跳开从而可以连续输入.
欢迎大家继续来讨论,集思广益呀.
路过的也请帮忙顶下...
__________________________________________________________________________
帮你顶下
__________________________________________________________________________
再頂+++
__________________________________________________________________________
学习!
__________________________________________________________________________
哈哈,好,帮忙顶一下!
__________________________________________________________________________
我使用Panel控件发现一个问题,就是Panel不能输入文本,只能在Panel内再嵌套一个LABEL来显示文本内容.这样又有一个问题出来,就是LABEL不能获得MouseDown事件,只能是把Panel做得比LABEL大一些,但是敏感度却大打折扣了.
谢谢各位支持,欢迎继续给出自己的见解.
__________________________________________________________________________
SendKeys
__________________________________________________________________________
来晚了...
都差不多...
__________________________________________________________________________
如果我使用API函数打开微软的软键盘,该怎样就直接切换到想要的那种输入法的状态呢?
因为一般软键盘被打开的时候,默认的是英文输入状态,所以我想是否可以通过 keybd_event 这样的API函数,向系统发送一些按钮组合,来实现直接打开想要的那种输入法的.
有经验的请来指教一下吧.
__________________________________________________________________________
http://www.mumayi.com/downinfo/1334.html

推荐 <思特软键盘三套件 >
下载地址:http://www.whbestsoft.com/download/file/kb.rar
--------------------------------------------------------------------------------

思特软键盘三套件1.0(ocx、dll、exe方式)
======================
=思特软键盘ocx控件1.0=
======================
本控件可以使用在各种语言平台下,方便快捷,拖上去即可使用,使之成为程序的一部分,也可使用在网页中,成为一个漂亮的软键盘输入,可广泛应用于触摸屏软件等特定条件下的软件。
Web中设置的属性
==============================
isCtrlSpace:是否使用模拟的开关输入法方式
showmoveimage:是否显示移动键盘图片
selectimebutton:是否显示选择输入法按钮
opentimebutton:是否显示打开输入法按钮
closeimebutton:是否显示关闭输入法按钮
showimetext:是否显示输入法信息
regname:注册姓名
regcode:注册码
showreginfo:是否显示注册信息
imetimeinteval:显示输入法信息的刷新时间
一般windows程序中设置的属性
==============================
jyb_isCtrlSpace:是否使用模拟的开关输入法方式
jyb_showmoveimage:是否显示移动键盘图片
jyb_selectimebutton:是否显示选择输入法按钮
jyb_opentimebutton:是否显示打开输入法按钮
jyb_closeimebutton:是否显示关闭输入法按钮
jyb_showimetext:是否显示输入法信息
jyb_regname:注册姓名
jyb_regcode:注册码
jyb_showreginfo:是否显示注册信息
jyb_imetimeinteval:显示输入法信息的刷新时间
======================
=思特软键盘Dll1.0 =
======================
在程序中通过Dll调用即可出现键盘,使之在本程序中可以调用键盘程序进行输入内容
显示软键盘: jyb_kbshow(canclose:integer)
关闭软键盘: jyb_kbclose
注册软件盘: jyb_kbReg(name,code:pchar)
定位键盘位置:jyb_kbsetpos(fs,left,top:integer)
fs=0自定义 1..9分别为左上、左中、左右、中左...下右
======================
=思特软键盘1.0 =
======================
直接执行即可使用:
jybKB.exe后可加参数,来初始化软键盘位置
jybKB.exe 0 left top //自定义
jybKB.exe 1 //左上角
jybKB.exe 2 //左中
............
jybKB.exe 9 //右下角
__________________________________________________________________________