鼠标点击vb窗体的标题栏触发什么事件[问题点数:20分,结帖人:yu3350360]

解决方案 »

  1.   

    非客户区消息,如WM_NCLBUTTONDOWN等
      

  2.   

    用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
      

  3.   

    Case 161    '点击非客户区
      

  4.   

    点名  BestBadGod
    请来接分呀