想在MDI窗体里面制作一个侧边栏,仿照网上例子用了一个子窗体实现Private Sub MDIForm_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X < 10 Then
load Form侧边栏
……
Else
……
End If
End Sub做好了侧边栏而且也运行成功,但现在问题是,我想在mdi窗体里面再放一个子窗体--Form背景,Form背景一直显示于最底层且充满整个区域,Form背景里有一个IMAGE控件,里面存放图片且stretch = true,程序运行时控制IMAGE控件使得它与Form背景一样大,这样图片就可以不受分辨率影响一直全部显示。关键现在同时载入Form背景,Form侧边栏:要么能运行Form侧边栏,但是Form背景不能最大化
要么Form背景最大化显示,但是怎么都不出现Form侧边栏哪位大侠能帮帮小弟~~~感激不尽~~~~
If X < 10 Then
load Form侧边栏
……
Else
……
End If
End Sub做好了侧边栏而且也运行成功,但现在问题是,我想在mdi窗体里面再放一个子窗体--Form背景,Form背景一直显示于最底层且充满整个区域,Form背景里有一个IMAGE控件,里面存放图片且stretch = true,程序运行时控制IMAGE控件使得它与Form背景一样大,这样图片就可以不受分辨率影响一直全部显示。关键现在同时载入Form背景,Form侧边栏:要么能运行Form侧边栏,但是Form背景不能最大化
要么Form背景最大化显示,但是怎么都不出现Form侧边栏哪位大侠能帮帮小弟~~~感激不尽~~~~
Option Explicit
Private m_BackPicture As IPictureDispPrivate Sub Form_Load()
Set m_BackPicture = LoadPicture("...")
End SubPrivate Sub Form_Paint()
With MDIForm1
Me.PaintPicture m_BackPicture, -.Picture1.Width, 0, .ScaleWidth + .Picture1.Width, .ScaleHeight
End With
End SubPrivate Sub Form_Resize()
Form_Paint
End Sub
背景窗体无标题、最大化,它就会充满整个 MDI 的子窗体客户区;
PictureBox 在 MDIForm 上, align = left,是不会被子窗体覆盖的(你用 Spy++ 看看就知道它的窗口和 MDIClient 窗口是平级的);
注意一下背景图的画法:Me.PaintPicture 图是画在背景窗体上的,而 With MDIForm1 图片大小参考的是主窗体的大小,目的是无论侧边栏宽度如何变化,虽然背景窗体大小随之变化,却可以然图片看起来就像被侧边栏覆盖一样不产生缩放。