软件注册站
热情软件屋

 
在MDI父窗口可以增加背景吗
编号: QA000268    
建立日期: 1998年12月27日 最后修改日期: 2003年11月30日
所属类别: Visual Basic - 窗体与菜单
   
    在MDI父窗口可以增加背景吗?如何增加?(lihai)
   
    对于VB6,直接在窗体的Picture属性中设置背景即可,但是这样图像不能平铺或拉伸。要解决平铺或拉伸这个问题可以参考例子MDI_Background_Demo.zip,这个例子是从http://www.mvps.org/vbvision/grouped_demos.htm下载的。
    对于VB5及其以前版本,也可以采用下面说的各种方法:
    在Windows中标准的做法应该是处理MDI父窗口的WM_ERASEBKGND,但这对VB来说太麻烦了。一个比较简单的办法是先建立一个Form,假设叫FrmCntnr,设置MDIChild为True,Border为0(无)。然后,在Form中加入如下代码:
    Private Sub Form_Activate()
     Me.ZOrder 1
    End Sub
    确保该Form出现在所有窗口的最下面。
    在MDIForm的Resize事件中调整Form的大小,以保证它和MDIForm的大小相适应。假设MDIMenu是MDI窗体。
    Private Sub MDIForm_Resize()
     If MDIMenu.WindowState <> 1 Then
     FrmCntnr.Height = MDIMenu.ScaleHeight
     FrmCntnr.Width = MDIMenu.ScaleWidth
     End If
    End Sub
    由于你可以在普通的Form中设置背景,所以你可以把这个作为背景的Form当作MDIForm的背景。
    
    ZU的意见:
    我的建议同样是加一个背景Form但是方法是将背景Form作为MDIForm的子窗体,将其ControlBox设为False并清除Caption的值,WindowState设为2-Maximized,在MDIForm_Load()添加背景Form.Show。好处是不用再调整背景Form大小。
    
    传说一梦的意见:
    但是,如果其它窗口进行非最大化调整时,Form也一样跟着变为非最大化。所以ZU的意见考虑不是太周全。

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 窗体与菜单, form, window, tform

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio