如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
如何在一个PICTUREBOX里面实现 用一个小图片的 平铺效果
[解决办法]
有个属性需要设一下就好了。msdn里记得有
[解决办法]
平铺的含义是:如果图片没有控件picturebox大,就一张一张地把picturebox铺满,否则就用一部分填满。
用简单的光栅运算就可以实现:
'窗体上放一个命令按钮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函数
[解决办法]