如何求得一个窗口的父窗口?

glvicky 2006-02-09 08:08:21
例如有三个窗口;
form1,form2,form3
点击form1,form2都能打开form3~
那我操作form3的时候要返回信息,但怎么知道是form1还是form2打开它呢?
...全文
53 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
glvicky 2006-02-09
  • 打赏
  • 举报
回复
呵,我的问题就是这样,谢谢rainstormmaster(暴风雨 v2.0)~
rainstormmaster 2006-02-09
  • 打赏
  • 举报
回复
//不加的话其onwer为vb的虚拟机

拼错了,应为owner
rainstormmaster 2006-02-09
  • 打赏
  • 举报
回复
楼主的情况不适宜用getparent,应该这样做:

窗体1:
Option Explicit

Private Sub Command1_Click()
Form3.Show , Me '参数me一定要加上,不加的话其onwer为vb的虚拟机
End Sub

窗体2:
Option Explicit

Private Sub Command1_Click()
Form3.Show , Me '参数me一定要加上,不加的话其onwer为vb的虚拟机
End Sub

窗体3:
Option Explicit
Private Const GW_OWNER = 4
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

Private Sub Command1_Click()
Dim mhwnd As Long
mhwnd = GetWindow(Me.hwnd, GW_OWNER)
Dim a As Form
For Each a In Forms
If a.hwnd = mhwnd Then
MsgBox "打开我的是:" + a.Name
Exit For
End If
Next
Set a = Nothing
End Sub
xDAVIDx 2006-02-09
  • 打赏
  • 举报
回复
利用form3的Tag信息也可以,用form1打开设置一个值,form2打开设置一个值.返回时先判断Tag值再返回 :)
faysky2 2006-02-09
  • 打赏
  • 举报
回复
Public Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧