7,763
社区成员
发帖
与我相关
我的任务
分享
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 Long
Dim 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