在窗体中定义事件
Public Event Move()
然后用 RaiseEvent From_Move()调用事件

解决方案 »

  1.   

    将Form1改为frmMain
    添加一个模块:
    Option ExplicitPublic Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    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 LongPublic Const WM_MOVE = &H3
    Public Const GWL_WNDPROC = (-4)Dim OldProc As Long
    Public Function Callback(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If wMsg = WM_MOVE Then           'MOVE事件过程就放在这里,也可以在frmMain中声明
               '一个Public函数,然后在这里调用
            Debug.Print "移动窗体"
        End If
        Callback = CallWindowProc(OldProc, hwnd, wMsg, wParam, lParam)
    End FunctionPublic Sub main()
        If OldProc <> 0 Then Exit Sub
         OldProc = SetWindowLong(frmMain.hwnd, GWL_WNDPROC, AddressOf Callback)
        frmMain.Show
    End Sub
    设置启动对象为Sub main()
    注意不要用End结束程序而使用Unload frmMain,也不要按VB的运行菜单上的停止按钮,否则非法操作。
      

  2.   

    楼上的太麻烦。
    如果只是窗口的移动,可以在Mouse_Click中设置,如果鼠标位置在 (-X(X为标题栏高度)至0,  0至窗口.width),那么,让一个变量,如SS=TRUE。
    在Mouse_Move中写
    if ss=true then
    (窗体在移动,在这写下你要的代码)
    end if最好不要用API,会影响运行的速度和效率。
      

  3.   

    太危险了.不建议在VB中使用子类处理技术.建议用VB.NET.这个支持的
      

  4.   

    谢谢各位的关注。
    根据大家的看法,就是说,对于VB的集成环境中事件列表中没有列出的
    事件,即使是windows标准事件,处理起来也要大费一番周折了?
      

  5.   

    另外问一下,(chenxianwen),mouse_click是谁的事件?form_click不能得到在窗口的标题栏的单击事件。
      

  6.   

    chenxianwen(圣骑士):
    我也想问一下,你真不用API就能实现吗?你试运行过没有?
    mouse_click????怎么解释?
    mouse为对象,click为事件,对吧?
    那么你请问你的mouse对象从哪里来的?
    我承认调用API是比较麻烦,“会影响运行的速度和效率”怎么解释?
    你能给我答复I服了YOU!
      

  7.   

    看来真的只能使用API了!
    唉!VB也有烦的时候啊!Windows本身是事件驱动的,能自动相应的消息越多越好啊!这只是个基本的消息,VB居然都不支持!
      

  8.   

    哦?你不知道吗?
    使用API会让程序的速度和效率下降。
    所以有些高手不得不“内置江编”
    不知道你要不要知道怎样在VB中加入江编?上面是我的失误,我只是凭经验想的,没有经过试验,我在这里说声对不起。