vb 2008 接收消息的问题。

brouno brouno 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用vb6作了一个接收消息的程序,没问题。
把该程序转移到vs2008的时候就出现了问题:
'UPGRADE_WARNING: Add a delegate for AddressOf WindowProc

运行也出现错误, 通过查询很多资料后,勉强可以,可是有warning。
期待高人。
vb6的代码大概如下:
Private 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 GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Function Hook(ByVal hwnd As Long) As Long
Dim pOld As Long

pOld = SetWindowLong(hwnd, GWL_WNDPROC,AddressOf WindowProc)

SetWindowLong hwnd, GWL_USERDATA, pOld
Hook = pOld
End Function

Public Sub Unhook(ByVal hwnd As Long, ByVal lpWndProc As Long)
Dim temp As Long
temp = SetWindowLong(hwnd, GWL_WNDPROC, lpWndProc)
End Sub

Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_USER + 1 Then
MsgBox "msg received" & wParam 'wParam
End If
Dim lpPrevWndProc As Long
lpPrevWndProc = GetWindowLong(hw, GWL_USERDATA)
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function

...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
brouno
VB基础类 7,788 成员 197,583 内容