有A、B、C三个窗口,点A中某按钮用b.show调出B窗口,同样点C中按钮也调出B窗口。我想知道在调出B窗口后有什么办法可以判断出调用他的是A还是C窗口,从而在完成操作后返回到不同的窗口(A或C)?

解决方案 »

  1.   

    这样:
    1 //点A中某按钮用b.show调出B窗口
    将A.C中的:b.show
    修改为:
    b.show ,me
    2 在b中添加一个按钮,并加入下面的代码:
    Option ExplicitPrivate Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Private Const GW_OWNER = 4Private Sub Command1_Click()
    Dim mhwnd As Long
    mhwnd = GetWindow(Me.hwnd, GW_OWNER)
    If mhwnd = 0 Then Exit Sub
    Dim m As Form
    For Each m In Forms
        If m.hwnd = mhwnd Then
        MsgBox "form2的owner为:" + m.Name
        Exit Sub
        End If
    Next
    End Sub
      

  2.   

    兄弟解释清清清楚呀,
    什么A 中,什么又A.C中……后边的代码加点注释好不好呀?
      

  3.   

    b.show和b.show ,me有什么区别呀?
    我觉得调B窗时不用隐藏前窗口,只是ENABLE变为FALSE就可以呀,哪有这么麻烦呀……
    ……
      

  4.   

    //b.show和b.show ,me有什么区别呀?有区别,区别在前者窗体b的OWNER为vb的虚拟机,后者窗体b的OWNER为窗体自身(me)
      

  5.   

    说个简单的招,你设个全局变量 callfrom
    当A-->B的时候
    在A中写代码
    b.show
    callfrom="A"当C-->的时候
    在C中写代码
    b.sho
    callfrom="C"在B中判断callfrom的值就好了。希望有帮助