我在参考书上看到一段这样的代码,它是为了处理系统状态区所送过来的鼠标消息(已经把窗体隐藏,并且把图标加入到系统状态区中):
Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_USER Then
If wParam = vbKeyF7 And (lParam And &H80000000) <> 0 Then
Form1.Capture
Form1.picCopy.Refresh
Form1.WindowState = vbNormal
Form1.Show
End If
ElseIf Msg = WM_USER + 100 Then
If lParam = WM_LBUTTONDBLCLK Then
Form1.WindowState = vbNormal
Form1.Show
ElseIf lParam = WM_LBUTTONUP Then
Form1.PopupMenu Form1.mTarget
End If
End If
WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
End Function
我想问:(1)Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long这个函数是用户自定义的函数,还是API函数?
(2)WM_USER 是表示什么的常量?
(3)(lParam And &H80000000)<>0是什么意思?
(4)WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)又是什么意思?
麻烦大家了!
Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_USER Then
If wParam = vbKeyF7 And (lParam And &H80000000) <> 0 Then
Form1.Capture
Form1.picCopy.Refresh
Form1.WindowState = vbNormal
Form1.Show
End If
ElseIf Msg = WM_USER + 100 Then
If lParam = WM_LBUTTONDBLCLK Then
Form1.WindowState = vbNormal
Form1.Show
ElseIf lParam = WM_LBUTTONUP Then
Form1.PopupMenu Form1.mTarget
End If
End If
WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
End Function
我想问:(1)Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long这个函数是用户自定义的函数,还是API函数?
(2)WM_USER 是表示什么的常量?
(3)(lParam And &H80000000)<>0是什么意思?
(4)WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)又是什么意思?
麻烦大家了!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货