VB MDI子窗体如何显示在主窗体的picturebox之上

2025-01-02 05:51:08
推荐回答(4个)
回答1:

那是做不到的

因为 MDI 程序中

子窗体实际上是位于 MDIClient 里

就是说 子窗体的父窗体 是 MDIClient
而 放置在MDI中 的 picturebox 和MDIClient是同一级的

层次结构
ThunderMDIForm--MDIForm1
--MDIClient
----ThunderFormDC--Form1 子窗体1
----ThunderFormDC--Form2 子窗体2
--ThunderPictureBoxDC MDI中 的 picturebox

如果硬要将子窗体放到上面

只能是

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

SetParent Form1.hWnd, MDIForm1.hWnd

这样就破坏了 Form1的消息循环,程序可以运行,但窗体效果就不对了

MDI主窗体中显示一个背景,是MDI自绘背景
图片应该绘制在MDIClient上,而不能加载picturebox
这个要通过回调才能实现

VB MDI 显示背景图
Private Sub MDIForm_Load()
Me.Picture = LoadPicture("c:\1.bmp")
End Sub

只能显示在左上角

回答2:

给你个例子
Load FormBack '载入窗体Formback
FormBack.Show '显示窗体Formback
FormTxtBox.Visible = False '设置窗体FormtextBox不可见

回答3:

用 show 1

回答4:

Form1.Show
Form1.ZOrder = 0
不知有不有用!给你个方法吧!可以试一下!