+ -
当前位置:首页 → 问答吧 → 不用时间控件,如何接收SENDMESSAGE发过来的内容?

不用时间控件,如何接收SENDMESSAGE发过来的内容?

时间:2011-07-29

来源:互联网

例如有FORM1和FORM2两个,FORM1是负责用sendmessage发送信息,FORM2是接收信息的,我不想用TIMER,如何能即时的接收FORM1发来的信息呢?最好能有获取信息马上触发的涵数就最好,谢谢.

作者: penguinhzf   发布时间: 2011-07-29

用_close事件好了

作者: wowfiowow   发布时间: 2011-07-29

回调,新建一模块,把如下代码粘贴进去
VB code

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 Long
Public Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long


Public Const GWL_WNDPROC = (-4)

Global PrevProc  As Long '旧窗口过程

Public Sub HookForm(F As Form)
    PrevProc = GetWindowLong(F.hWnd, GWL_WNDPROC)
    SetWindowLong F.hWnd, GWL_WNDPROC, AddressOf WindowProc
End Sub
Public Sub UnHookForm(F As Form)
   SetWindowLong F.hWnd, GWL_WNDPROC, PrevProc
End Sub
Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If uMsg = 你的消息 Then
        ...
        你的处理过程
         ...
    End If
WindowProc = CallWindowProc(PrevProc, hWnd, uMsg, wParam, lParam)
End Function


接着,form2的load里写上
VB code
HookForm Me


form2的Unload里写上
VB code
UnHookForm

作者: c_cyd2008   发布时间: 2011-07-29

最后一段差个 me

作者: c_cyd2008   发布时间: 2011-07-29