首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

在picture控件里画图,怎么进行放大,缩小,利用滚动条滚动

2012-04-12 
在picture控件里画图,如何进行放大,缩小,利用滚动条滚动这个图是用一个picture控件画的。现在想利用按钮或

在picture控件里画图,如何进行放大,缩小,利用滚动条滚动

这个图是用一个picture控件画的。现在想利用按钮或鼠标滚轮将它放大,缩小,放大后可利用滚动条对他进行查看,怎么做啊。
大家帮想想办法,不胜感激.

[解决办法]

VB code
Option ExplicitPrivate Type POINTAPI   X As Long   Y As LongEnd TypeDim A(38) As POINTAPIDim lngTopX As LongDim lngTopY As LongDim lngBottomX As LongDim lngBottomY As Long'原始比例绘制曲线Private Sub Command1_Click()    Dim intP As Integer    Picture1.AutoRedraw = True    Picture1.ScaleMode = vbPixels    Picture1.DrawMode = 13    lngTopX = -1    lngTopY = 400    lngBottomX = 900    lngBottomY = -1    Picture1.Scale (lngTopX, lngTopY)-(lngBottomX, lngBottomY)  '定义坐标系统        For intP = LBound(A) To UBound(A) - 1        Picture1.Line (A(intP).X, A(intP).Y)-(A(intP + 1).X, A(intP + 1).Y)    Next intPEnd Sub'缩小5倍显示Private Sub Command2_Click()    Dim intP As Integer    Picture1.Cls    Picture1.AutoRedraw = True    Picture1.ScaleMode = vbPixels    Picture1.DrawMode = 13    lngTopX = lngTopX * 5    lngTopY = lngTopY * 5    lngBottomX = lngBottomX * 5    lngBottomY = lngBottomY * 5    Picture1.Scale (lngTopX, lngTopY)-(lngBottomX, lngBottomY)  '定义坐标系统        For intP = LBound(A) To UBound(A) - 1        Picture1.Line (A(intP).X, A(intP).Y)-(A(intP + 1).X, A(intP + 1).Y)    Next intPEnd Sub'放大5倍显示Private Sub Command3_Click()    Dim intP As Integer    Picture1.Cls    Picture1.AutoRedraw = True    Picture1.ScaleMode = vbPixels    Picture1.DrawMode = 13    lngTopX = lngTopX / 5    lngTopY = lngTopY / 5    lngBottomX = lngBottomX / 5    lngBottomY = lngBottomY / 5    Picture1.Scale (lngTopX, lngTopY)-(lngBottomX, lngBottomY)  '定义坐标系统        For intP = LBound(A) To UBound(A) - 1        Picture1.Line (A(intP).X, A(intP).Y)-(A(intP + 1).X, A(intP + 1).Y)    Next intPEnd SubPrivate Sub Form_Load()        A(0).X = 88: A(0).Y = 335    A(1).X = 112: A(1).Y = 312    A(2).X = 135: A(2).Y = 290    A(3).X = 158: A(3).Y = 270    A(4).X = 182: A(4).Y = 250    A(5).X = 205: A(5).Y = 232    A(6).X = 227: A(6).Y = 215    A(7).X = 250: A(7).Y = 200    A(8).X = 272: A(8).Y = 186    A(9).X = 295: A(9).Y = 173    A(10).X = 317: A(10).Y = 161    A(11).X = 338: A(11).Y = 150    A(12).X = 360: A(12).Y = 141    A(13).X = 382: A(13).Y = 132    A(14).X = 403: A(14).Y = 125    A(15).X = 424: A(15).Y = 119    A(16).X = 445: A(16).Y = 114    A(17).X = 466: A(17).Y = 111    A(18).X = 487: A(18).Y = 108    A(19).X = 508: A(19).Y = 107    A(20).X = 528: A(20).Y = 106    A(21).X = 548: A(21).Y = 107    A(22).X = 568: A(22).Y = 109    A(23).X = 588: A(23).Y = 112    A(24).X = 608: A(24).Y = 116    A(25).X = 628: A(25).Y = 121    A(26).X = 647: A(26).Y = 127    A(27).X = 666: A(27).Y = 135    A(28).X = 686: A(28).Y = 143    A(29).X = 705: A(29).Y = 152    A(30).X = 723: A(30).Y = 163    A(31).X = 742: A(31).Y = 174    A(32).X = 761: A(32).Y = 187    A(33).X = 779: A(33).Y = 200    A(34).X = 797: A(34).Y = 215    A(35).X = 816: A(35).Y = 230    A(36).X = 834: A(36).Y = 246    A(37).X = 851: A(37).Y = 264    A(38).X = 869: A(38).Y = 282            End Sub
[解决办法]
用两个PictureBox,载图的那个做背景的那个的儿子,在背景的那个里边加滚动条,载图的那个可以直接放大缩小,然后用painpicture方法放大缩小图,移动载图的那个PictureBox的top、left属性来配合滚动条。

热点排行