用API 拦截吧。Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lparam As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongDim lpPrevWndProc As Long, gHW As Long, ClickCount As Long Sub main() Form1.Show Form1.Caption = "标题栏点击 " & ClickCount & " 次" gHW = Form1.hwnd lpPrevWndProc = SetWindowLong(gHW, -4&, AddressOf WindowProc) End Sub Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lparam As Long) As Long Select Case uMsg Case 161 '点击非客户标题栏 If wParam = 2 Then ' 标题栏 ClickCount = ClickCount + 1 Form1.Caption = "标题栏点击 " & ClickCount & " 次" End If End Select WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lparam) End Function
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongDim lpPrevWndProc As Long, gHW As Long, ClickCount As Long
Sub main()
Form1.Show
Form1.Caption = "标题栏点击 " & ClickCount & " 次"
gHW = Form1.hwnd
lpPrevWndProc = SetWindowLong(gHW, -4&, AddressOf WindowProc)
End Sub
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lparam As Long) As Long
Select Case uMsg
Case 161 '点击非客户标题栏
If wParam = 2 Then ' 标题栏
ClickCount = ClickCount + 1
Form1.Caption = "标题栏点击 " & ClickCount & " 次"
End If
End Select
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lparam)
End Function
请来接分呀