怎么在一个PICTUREBOX里面实现 用一个小图片的 平铺效果

如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果

------解决方案--------------------
有个属性需要设一下就好了。msdn里记得有
------解决方案--------------------
平铺的含义是:如果图片没有控件picturebox大,就一张一张地把picturebox铺满,否则就用一部分填满。
用简单的光栅运算就可以实现:
VB code
'窗体上放一个命令按钮Command1,2个图片框控件Picture1,picture2。Picture1比picture2大,在picture2中装入一张小图片。
'程序启动后,这张小图片就会铺满整个picture1
Option Explicit
Private Declare Function BitBlt Lib "gdi32.dll" (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
Private Const SRCCOPY As Long = &HCC0020

Private Sub Command1_Click()
    Dim W1 As Long, W2 As Long, H1 As Long, H2 As Long
    Dim hDC1 As Long, hDC2 As Long
    Dim i As Long, j As Long
    
    W1 = Picture1.ScaleWidth
    W2 = Picture2.ScaleWidth
    H1 = Picture1.ScaleHeight
    H2 = Picture2.ScaleHeight
    hDC1 = Picture1.hDC
    hDC2 = Picture2.hDC
    Debug.Print W1 \ W2, H1 \ H2
    For i = 0 To W1 \ W2
        For j = 0 To H1 \ H2
           BitBlt hDC1, i * W2, j * H2, W2, H2, hDC2, 0, 0, SRCCOPY
        Next
    Next
    
End Sub

Private Sub Form_Load()
    Me.ScaleMode = 3
    Picture1.ScaleMode = 3
    Picture2.ScaleMode = 3
    Picture1.AutoSize = False
    Picture2.AutoSize = True
    Picture1.AutoRedraw = False
    '事先在picture2中加载一张小图片,我这里加载的是80X78的.程序启动后,这张小图片就会铺满整个picture1。
    Picture2.Picture = LoadPicture("F:\资料\My Pictures\28_meigui_18.jpg")
End Sub

------解决方案--------------------
看我在5L的回复

------解决方案--------------------
使用VB的paintpicture函数
------解决方案--------------------
探讨
使用VB的paintpicture函数

------解决方案--------------------
不用如此麻烦。只用pictureBox数组控件就行了

Option Explicit
 
Private Sub Command2_Click()
Dim W1 As Long, W2 As Long, H1 As Long, H2 As Long
 
Dim i As Long, j As Long

W1 = picDest.ScaleWidth
W2 = picSource(0).ScaleWidth
H1 = picDest.ScaleHeight
H2 = picSource(0).ScaleHeight

Dim picbox_count As Long
picbox_count = 0
For i = 0 To W1 \ W2
For j = 0 To H1 \ H2
picbox_count = picbox_count + 1

Load picSource(picbox_count)
Set picSource(picbox_count).Container = picDest
picSource(picbox_count).Left = W2 * i
picSource(picbox_count).Top = H2 * j


picSource(picbox_count).Visible = True
 
Next
Next

End Sub

Private Sub Form_Load()
Me.ScaleMode = 3

picSource(0).BorderStyle = 0
picSource(0).ScaleMode = 3
picSource(0).AutoSize = True


picDest.ScaleMode = 3
picDest.AutoSize = False
picDest.AutoRedraw = False


'加载图片
picSource(0).Picture = LoadPicture("C:\1.jpg")

End Sub