vb中有个属性是picture
改变图片后会出现背景。
但图片大小不合适就不能平铺整个窗体,却只能看到图片的一部分。
请问怎么可以解决这个问题?

解决方案 »

  1.   

    只能看到图片的一部分 你可以使用PaintPicture将图片缩小,如下面代码
    如果你的图片很小,则要用另外一种方法,将小图片拷成数张数十张铺满窗体'c:\car.jpg 改为你自己的路径,这个代码是使用1024*768的大图片缩小放在标准的VB窗体大小4800 * 3600Private Sub Form_Load()
       Dim pic As New StdPicture '自动创建一个PictureBox
       Set pic = LoadPicture("c:\car.jpg") '载入图片
       Me.AutoRedraw = True
       Me.PaintPicture pic, 0, 0, Me.Width, Me.Height
    End Sub
      

  2.   

    下面的这段代码是我以前写的,用一张小图片铺满整个窗口的代码。
    你把它移植到Resize()事件中去。
    (picBack就是用来铺设的背景图片)Private Sub Form_Load()    Dim W%, H%    Me.Cls
        W = 0
        While W < Me.ScaleHeight
            H = 0
            While H < Me.ScaleWidth
                frmAbout.PaintPicture picBack.Picture, H, W
                H = H + picBack.Width
            Wend
            W = W + picBack.Height
        WendEnd Sub
      

  3.   

    请问二楼
    怎么这句不能通过编译啊?
    frmAbout.PaintPicture picBack.Picture, H, W
      

  4.   


    我的天!你直接复制就完了?frmAbout是我的那个程序的“关于”窗口的名称,你的窗口名称是啥,就要改成啥。
    picBack是frmAbout窗口中的一个图片控件,是用来载入背景图片的。
    那段代码是我的程序中frmAbout窗口的Form_Load()事件中的代码。你的程序中没有这些对象,怎么可能通过编译!
    我已说过要“移植”,肯定要修改后才能用呀。
      

  5.   

    一楼,二楼的方法很好,学习了。
    还可以用image控件可以调整strech属性来自动控制适应图片的大小,不知道LZ是否可以用image控件。