专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

“AddressOf”出错,请大家帮小弟我修正

发布时间:2011-06-23 16:02:32 文章来源:www.iduyao.cn 采编人员:星星草
“AddressOf”出错,请大家帮我修正
提示:“AddressOf”表达式不能转换为“Long”,因为“Long”不是委托类型。(改为 Integer 亦无用处)
本人使用2005不久,请大家帮助我修改它,使其可以在VB2005中正常编译。
VB.NET code

    Public Function SetWndProc(ByVal hwnd As Long, ByVal NewWndProc As Boolean) As Long
        If NewWndProc Then
            prevWndProc = GetWindowLong(hwnd, GWL_WNDPROC)
            SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WndProc)
        Else
            SetWndProc = SetWindowLong(hwnd, GWL_WNDPROC, prevWndProc)
        End If
    End Function

    Private Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If Msg = WM_HOTKEY Then
            Select Case wParam
                Case 2222
                    SetWindowPos(GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
                Case 2223
                    SetWindowPos(GetForegroundWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
                Case 2224
                    Form1.Close()
            End Select

            Exit Function
        End If
        WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
    End Function




------解决方案--------------------
申明一致就可以了,没什么难的
------解决方案--------------------
得看你SetWindowLong是怎么声明的了。

windows API 中SetWindowLong第三个参数是是Long
LONG WINAPI SetWindowLong(
__in HWND hWnd,
__in int nIndex,
__in LONG dwNewLong
);

感觉应该不是函数的地址。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: