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

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

------解决方案--------------------
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步中已判断)