首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

已经知道按钮的句柄,怎么判断此按钮是否被按下

2012-02-14 
已经知道按钮的句柄,如何判断此按钮是否被按下?大家好,现在做一个小程序,需要监控某一个按钮是否被按下,按

已经知道按钮的句柄,如何判断此按钮是否被按下?
大家好,现在做一个小程序,需要监控某一个按钮是否被按下,按钮按下后对应的窗体
就会关闭,所以貌似要用钩子来拦截消息。不过因为在此方面没有经验,请大家指点一
下,怎么进行啊,谢谢。

[解决办法]
Dim ld = GetWindowLong(hButton, GWL_STYLE)
If ((ld And WS_DISABLED)) Then
//按钮被按下了
end if
[解决办法]
一个timer,一个command,一个text。

VB code
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  Const BM_GETSTATE = &HF2  Private Sub Form_Load()  Timer1.Interval = 50  Timer1.Enabled = True  End Sub  Private Sub Timer1_Timer()  Dim a As Long  a = SendMessage(Command1.hwnd, BM_GETSTATE, 0, 0)  Text1.Text = a  If a = 108 Then MsgBox "按钮被按下了"  End Sub
[解决办法]
使用Hook技术可以轻松实现,个人思路如下:

1、取得拥有当前焦点的控件的句柄(GetFocus函数可以实现该功能),判断该句柄是否和你要控制的按钮的句柄一致。
2、使用Hook函数Hook到鼠标按下的消息,判断是否点中的是该按钮(第1步中已判断)
[解决办法]
探讨
使用Hook技术可以轻松实现,个人思路如下:

1、取得拥有当前焦点的控件的句柄(GetFocus函数可以实现该功能),判断该句柄是否和你要控制的按钮的句柄一致。
2、使用Hook函数Hook到鼠标按下的消息,判断是否点中的是该按钮(第1步中已判断)

热点排行