那是做不到的
因为 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
只能显示在左上角
给你个例子
Load FormBack '载入窗体Formback
FormBack.Show '显示窗体Formback
FormTxtBox.Visible = False '设置窗体FormtextBox不可见
用 show 1
Form1.Show
Form1.ZOrder = 0
不知有不有用!给你个方法吧!可以试一下!