Private Sub Form_Load()
    prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
    SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End SubPrivate Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hWnd, GWL_WNDPROC, prevWndProc
End Submodule里:
Option ExplicitPublic Const GWL_WNDPROC = (-4)Public Const WM_NCHITTEST = &H84
Public Const HTCLIENT = 1
Public Const HTCAPTION = 2Declare 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
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic prevWndProc As LongFunction WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
    If Msg = WM_NCHITTEST  Then
        处理
    End If
End Function希望能有用:))
载自lttletao回复
  

解决方案 »

  1.   

    to jing:
    Msg = WM_NCHITTEST仅仅是鼠标在窗体非工作区触发的消息得用钩子才能达到PROJECT21的要求,有关钩子方面的东东网上大把。自己找吧
      

  2.   

    其实就是要让VB能截获windows的消息,可通过API做到,网上有关这种API的文章大把有的是.
      

  3.   

    像jing那样做可能不行,应该是要做全局钩子,我这里有一个这样的程序,不过钩子是用vc写的,没有源代码,调用部分是vb写的,有源代码,如需要的话,告诉我。