就是图片适合MDIForm的大小适合各种分辨率的显示器,不会显示不全。网上找了好多资料都不行。

解决方案 »

  1.   

    'Picture1.Height = MDIForm1.Height
        Picture1.AutoRedraw = True
        'Picture1.visibule = False
        Picture1.PaintPicture Picture1.Picture, 0, 0, Picture1.Width, Picture1.Height
        Picture1.Refresh
        'Set MDIForm1.Picture = Picture1.Image
      

  2.   

    上面方法是可以,但有个问题是否考虑到了,就是mdiform.放上一个picture,如果这时想打开子窗体,你会发现子窗体根本不会显示出来.
    解决的办法就是让picture隐藏起来,但是子窗体关闭后,又必须让mdi上的picture显示出来,
    特别麻烦.如果不注意,就会出现背景图丢了的情况.
    不知您是如何解决这个问题的.
      

  3.   

    做一个背景窗体叫:FrmBackPic
    FrmBackPic 上一个picturebox叫:picBack装要换的图片,  一个Image控件叫:imgDefault 装默认背景Option ExplicitPublic Sub SetBack(Optional ByRef frmMain As Form) '设置背景函数
      On Error Resume Next
        Dim i As Long, j As Long, ls_Path As String
        
        '从注册表中读取背景图片路径
        ls_Path = GetSetting("OrientZiXun", "BackGround", "PathValue")
        
        If Trim(ls_Path) <> "" Then
            If Dir(ls_Path) <> "" Then
                picBack.Picture = LoadPicture(ls_Path) '图片存在,将图片显示在缓冲区中
            Else
                picBack.Picture = imgDefault.Picture '图片不存在,用默认的图片
            End If
            
        Else
            picBack.Picture = imgDefault.Picture '路径为空,用默认的图片
        End If    If frmMain.mnuPull.Checked Then '如果为拉伸
           Me.PaintPicture picBack.Picture, 0, 0, frmMain.Width, frmMain.Height
            
        Else '如果为平铺
            For j = 0 To frmMain.ScaleHeight Step picBack.ScaleHeight
                For i = 0 To frmMain.ScaleWidth Step picBack.ScaleWidth
                    Me.PaintPicture picBack.Picture, i, j
                Next
            Next
        End If
        
        
        Me.Font.name = "楷体_GB2312"
        Me.ForeColor = vbBlue
        Me.Font.Size = 24
        Me.FontBold = True
        Me.CurrentX = frmMain.ScaleWidth - 3500
        Me.CurrentY = frmMain.ScaleHeight - 1000
        frmMain.Picture = Me.Image
        
        frmMain.BackColor = frmMain.BackColor - 1 '为了刷MDI窗口,否则背景不会改变
    End SubPrivate Sub Form_Load()
    On Error Resume Next
        Me.AutoRedraw = True
        picBack.AutoSize = True
            
    End Sub
      

  4.   

    在母窗体里加入Code:
    Private Sub MDIForm_Resize()
        On Error Resume Next
         FrmBackPic.SetBack Me
         FrmBackPic.Hide
    End Sub
      

  5.   

    i....
    说个想法吧,不写代码了
    用sub main 引导程序
    load mdiform
    istrdpic=loadpicture(a:\JQK.123)'同花啊,嘎嘎
    dim a as long
    a=createc...dc(创建内存DC的那个APi)
    bitblt  a, 0,0,... istrdpic.hdc
    bitblt getwindowdc(findwindowex(mdiform.hwnd,"client")),0., a,.....
    明白否???
      

  6.   

    ...
    怎么少了一句,刚才写了啊...
    dim istrdpic as stdpicture