当前位置:首页 » 程序代码 » 正文

用VB做一个输入法:无焦点的按钮(用于做输入法软键盘)

用VB做一个输入法:无焦点的按钮(用于软键盘)

一般的输入法都带有软键盘,如果用VB来做输入法的软键盘,那布置在窗体上的按钮,没有焦点要稍好看一点。
VB默认的控件中,CommandButton这个控件本身是还焦点的。怎样VB窗体上的按钮无焦点呢,目前我想到有下面几个方法:

1.在按钮的点击事件中,用SetFocus这个方法转移焦点,如 text1.SetFocus  把焦点转移到文本框控件中,但是这个方法会让窗体拥有焦点,所以这个方法不适用于输入法软键盘的代码中。

2.MS form 2.0工具箱有一个无焦点的按钮控件,这个按钮无焦点,而且是现存的,但是做输入法软键盘,我却不考虑,因为,VB做好这个输入法后,打包时,就必须要把 MS form 2.0 这个控件打包进去,增加了软件的大小,虽然现在宽带横行,但我还是想把软件做小一点,尽可能把软件做成绿色软件,不再打包别的DLL,OCX等别的文件。

3.自己做一个控件,对于VB初学者,这个难度稍大的,如果不打算在做的软件都用上这个无焦点的按钮,我看也没有必须花太多时间去做一个控件。

4.在窗体上用无焦点的标签,Line控件模拟一个按钮,这个方法做一个按钮还行,做软键盘上的26个按钮,就太麻烦了。(wb86.com)

我采用的方法是使用VB6.0自带的默认CommandButton,再加上API,让这个按钮在点击时没有焦点。做无焦点CommandButton控件方法如下:

首先在窗体模块上输入API代码:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_KILLFOCUS = &H8

在窗体上画一个按钮,在点击事件输入VB代码:
Private Sub Command1_Click()
   SendMessage Command1.hwnd, WM_KILLFOCUS, 0, 0
End Sub

将此VB源代码生成EXE后,运行,发现按钮是有焦点的,点击后,发现此按钮就不再有焦点了,以后,再怎么点击,这个按钮就会再拥有焦点。

来源:济亨网

本文链接:http://wb98.com/post/14.html

VB代码  API  
    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号