我想当鼠标在form标题栏(Caption)上面时,执行一段代码,如何实现?
我想当鼠标在form标题栏(Caption)上面时,执行一段代码,如何实现?
[解决办法]
我记得好像用API,你查查看
[解决办法]
用API获取鼠标坐标
[解决办法]
模块代码:
Public Declare Function SetWindowLong Lib "user32 " Alias "SetWindowLongA " (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
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 Const GWL_WNDPROC = (-4)
Public Const WM_NCMOUSEMOVE = &HA0
Public PrevProc As Long
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
If uMsg = WM_NCMOUSEMOVE Then
Debug.Print "鼠标在标题栏移动 "
End If
End Function
窗体代码:
Private Sub Form_Load()
PrevProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hwnd, GWL_WNDPROC, PrevProc
End Sub
[解决办法]
触发时机,需要仔细考虑......