本来想用mdiform.picture.render方法,但最后一下参数怎么也搞不清,于是想了个变通办法,发现这样实现其实更加方便,很多其它没办法实现的东西也可以实现了。
原理是创建一个新的专门用来作背景的窗体,将其caption 清空,controlbox设为false,mdichild设为true。然后在代码 窗口中写入:
Option
Explicit
Dim pp
Private Sub Form_Activate()
Dim o As Form
If Forms.Count >= 3 Then
Forms(Forms.Count - 1 ).SetFocus
End If
End Sub
Private Sub Form_Load()
Set pp = LoadPicture (App.Path & "/r esource/back.jpg " )
Me.Move 0 , 0 , MdiMain.ScaleWidth, MdiMain.ScaleHeight
End Sub
Private Sub Form_Resize()
Pic1.Move 0 , 0 , Me.ScaleWidth, Me.ScaleHeight
Pic1.PaintPicture pp, 0 , 0 , Pic1.Width, Pic1.Height
End Sub
Dim pp
Private Sub Form_Activate()
Dim o As Form
If Forms.Count >= 3 Then
Forms(Forms.Count - 1 ).SetFocus
End If
End Sub
Private Sub Form_Load()
Set pp = LoadPicture (App.Path & "/r esource/back.jpg " )
Me.Move 0 , 0 , MdiMain.ScaleWidth, MdiMain.ScaleHeight
End Sub
Private Sub Form_Resize()
Pic1.Move 0 , 0 , Me.ScaleWidth, Me.ScaleHeight
Pic1.PaintPicture pp, 0 , 0 , Pic1.Width, Pic1.Height
End Sub
pic1是我创建的一个pictruebox,mdi主窗口名称为 mdimain。
Sub Form_Activate()过程保证了该窗口永不被激活,以免挡住其它窗口。而再没有其它窗口显示时,此窗口又可以正常使用上面的控件。