怎么在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
------解决方案--------------------
有个属性需要设一下就好了。msdn里记得有
------解决方案--------------------
平铺的含义是:如果图片没有控件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函数
------解决方案--------------------
------解决方案--------------------
不用如此麻烦。只用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