如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
[解决办法]
有个属性需要设一下就好了。msdn里记得有
[解决办法]
平铺的含义是:如果图片没有控件picturebox大,就一张一张地把picturebox铺满,否则就用一部分填满。
用简单的光栅运算就可以实现:
- VB code
'窗体上放一个命令按钮Command1,2个图片框控件Picture1,picture2。Picture1比picture2大,在picture2中装入一张小图片。'程序启动后,这张小图片就会铺满整个picture1Option ExplicitPrivate 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 LongPrivate Const SRCCOPY As Long = &HCC0020Private 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 SubPrivate 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函数
[解决办法]
[解决办法]
不用如此麻烦。只用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