Private Sub Form_Paint()
Dim pic As Image
  Set pic = Controls.Add("vb.image", "ll")
    pic.Picture = LoadPicture("F:\Workshop\demo\background.bmp")
    For i = 0 To Me.Width Step pic.Width
        For j = 0 To Me.Height Step Me.Height
            Me.PaintPicture pic, i, j
        Next
    NextEnd Sub
delphi中TProgressBar是不是进度条呀?如果是有progress 控件也可以用picturebox自己做

解决方案 »

  1.   

    Private Sub Form_Paint()
    Dim pic As Image
      Set pic = Controls.Add("vb.image", "ll")
        pic.Picture = LoadPicture("F:\Workshop\demo\background.bmp")
        For i = 0 To Me.Width Step pic.Width
            For j = 0 To Me.Height Step Me.Height
                Me.PaintPicture pic, i, j
            Next
        NextEnd Sub
    delphi中TProgressBar应该是不是进度条?
    如果是,vb有ProgressBar控件,也可以自己做
      

  2.   

    你做的是拉申吧
    将图片的大小和窗体的大小等同平铺是图片原来的大小,放在窗体0,0 处,如果有空白还用该图片填补你要计算出窗体的Width、 Height 和 图片的Width、 Height 之间的差
    然后在定位该需补添图片的left 和 top
      

  3.   

    danielinbiti(金) :
    没有用,没有显示出来!
     vicesfq(老沙) :
    对,是平铺 怎么做?能不能具体点?VB中那儿ocx控件是进度条???
      

  4.   

    用  image控件  麼 把 stretch 設為 true 圖片就會自動的放大或縮小到適合 image 大小了mscomctl.ocx 有進度條
    引用控件 microsoft window common controls 6.0(sp5)

          引用控件 microsoft window common controls 5.0(sp2)
    控件名  ProgressBar
      

  5.   

    如果是平铺,就先把Form1.Autoredraw:=true
    再把你的代码写在下面,
    最后 Set Form1.picture=Form1.image
        Form1.refresh
      

  6.   

    不过最好把代码放在Form_Load事件中
      

  7.   

    1、建立一个新工程项目,缺省建立窗体FORM1
      2、添加一个新模体
      3、粘贴下面代码到新模体
    Option Explicit
    Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, _
     ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _
     ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
    Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Public RetValue As Long
    Public Sub TileWindow(WindowObject As Object, p As PictureBox)
      Dim j As Integer, i As Integer
      Dim x As Integer
      Dim WhDC As Long 
      ' This object can be any VB standard object with an hWnd property
      WhDC = GetDC(WindowObject.hwnd) 
      For j = 0 To WindowObject.Height Step p.ScaleHeight
        For i = 0 To WindowObject.Width Step p.ScaleWidth
          x = BitBlt(WhDC, i, j, p.ScaleWidth, p.ScaleHeight, p.hDC, 0, 0, vbSrcCopy)
        Next
      Next
    End Sub
      4、添加一个图片框控件(PICUTRE1),设置其SCALEMODE属性=3-PIXEL,AUTOREDRAW属性=TURE,AUTOSIZE属性=TURE。在PICTURE属性中选择一幅图。
      5、添加以下代码到FORM1的PAINT事件:
    Private Sub Form_Paint()
      TileWindow Me, Picture1
    End Sub
      6、保存工程项目
      7、运行程序。当显示出窗体后,可以看到图片“平铺”到整个窗体。
      

  8.   

    Dim pic As IPictureDisp
        pic = LoadPicture("F:\Workshop\demo\background.bmp")
        For i = 0 To Me.Width Step Me.ScaleX(pic.Width,,Me.ScaleMode)
            For j = 0 To Me.Height Step Me.ScaleX(pic.Height,,Me.ScaleMode)
                Me.PaintPicture pic, i, j
            Next
        Next
      

  9.   

    ProgressBar我找到了,谢谢 ggto(没有猎枪的猎手) 
    上面的方法,我都试过!但是,我的平铺还是不行?
    我要一个小尺寸图片平铺我的整个窗体!
    请高手帮忙!
      

  10.   

    你自己不知道改啊
    上面的代码是临时写的,正确率只有90%左右Private Sub Form_Paint()
        Dim pic As IPictureDisp
        Dim I As Long, J As Long
        
        Set pic = LoadPicture("C:\My Documents\backmap.gif")
        
        For I = 0 To Me.ScaleWidth Step Me.ScaleX(pic.Width, vbHimetric, Me.ScaleMode)
            For J = 0 To Me.ScaleHeight Step Me.ScaleX(pic.Height, vbHimetric, Me.ScaleMode)
                Me.PaintPicture pic, I, J
            Next
        Next
        
        Set pic = Nothing
        
    End Sub
      

  11.   

    在form1中放一Image控件并load一个背景图,再在Paint中加入如下语句
    一定行我一直就是这样作 的。。Private Sub Form_Paint()
           For iX = 0 To Form1.Width Step Image1.Width
           For iY = 0 To Form1.Height Step Image1.Height
           Form1.PaintPicture Image1.Picture, iX, iY ', , , , , , , vbSrcAnd
           Next iY: Next iXEnd Sub
      

  12.   

    我放在paint中没有执行,
    后我放在Resize实现了效果!
    谢谢各位!