实现代码:
VERSION 5.00
BeginVB.纯桐FormForm1
Caption="使用PictureBox控件实现图像放大和缩小"
ClientHeight=5580
ClientLeft=60
ClientTop=345
ClientWidth=7935
LinkTopic="Form1"
ScaleHeight=5580
ScaleWidth=7935
StartUpPosition=3'窗口缺省
BeginVB.PictureBoxPicture1
AutoRedraw=-1'True
AutoSize=-1'True
Height=3960
Left=-15
Picture="Form1.frx":0000
ScaleHeight=3900
ScaleWidth=6240
TabIndex=2
Top=15
Width=6300
End
BeginVB.CommandButtonCommand2
Caption="放大"
Height=360
Left=6540
TabIndex=1
Top=5070
Width=1140
End
BeginVB.CommandButtonCommand1
Caption="缩小"
Height=360
Left=5160
TabIndex=0
Top=5070
Width=1140
End
End
AttributeVB_Name="Form1"
AttributeVB_GlobalNameSpace=False
AttributeVB_Creatable=False
AttributeVB_PredeclaredId=True
AttributeVB_Exposed=False
DimiAsInteger
DimjAsInteger
PrivateSubCommand1_Click()
Picture1.Cls
i=i-100:j=j-100
Picture1.PaintPicturePicture1.Picture,0,0,i,j
Picture1.Width=i:Picture1.Height=j
EndSub
PrivateSubCommand2_Click()
Picture1.Cls
Picture1.Width=i:Picture1.Height=j
i=i+100:j=j+100
Picture1.PaintPicturePicture1.Picture,0,0,i,j
EndSub
PrivateSubForm_Load()
i=Picture1.Width:j=Picture1.Height
Picture1.Cls
EndSub
VB6.0通过PictureBox控件实现图片放大和图片缩小功能
扩展资料:其它方法:
例子前请先下载Gdiplus.tlb,并将其放置到C:\Windows\System32中
Gdiplus.tlb下载
VisualBasiccode
使用棚卜Gdiplus.tlb,将其放到system32中,然后添加对其的引用
手动做和坦设置Form的AutoRedraw=True,ScaleMode=Pixels
OptionExplicit
DimlngGraphicsAsLong
DimlngImageHandleAsLong
DimlngTextureBrushAsLong
DimgpPAsGpStatus
DimlngPen1AsLong
DimlngTokenAsLong
DimGpInputAsGdiplusStartupInput
PrivateSubCommand1_Click()
DimintPAsInteger
gpP=GdipCreateFromHDC(Me.hDC,lngGraphics)'创建绘图区域设备场景
gpP=GdipLoadImageFromFile(App.Path&"\启动.png",lngImageHandle)'读取图片到内存
gpP=GdipDrawImage(lngGraphics,lngImageHandle,0,0)'等大小绘制
gpP=GdipDrawImageRect(lngGraphics,lngImageHandle,200,0,300,300)'在指定的区域内绘制(放大或缩小)
gpP=GdipDrawImageRectRectI(lngGraphics,lngImageHandle,550,0,400,400,20,20,80,80,UnitPixel)'在400*400的区域内显示图片部分区域
gpP=GdipCreateTexture(lngImageHandle,WrapModeTile,lngTextureBrush)'设置一定排列方式的刷子平铺方式
gpP=GdipFillRectangle(lngGraphics,lngTextureBrush,0,300,400,300)'在指定区域内按指定的格式绘制图片
IflngGraphics<>0ThenGdipDeleteGraphicslngGraphics
IflngImageHandle<>0ThenGdipDisposeImagelngImageHandle
IflngTextureBrush<>0ThenGdipDeleteBrushlngTextureBrush
Me.Refresh
EndSub
PrivateSubForm_Load()
DimbolPAsBoolean
WithMe
.Caption="GDIPlus范例"
.Width=960*15
.Height=720*15
.Left=(Screen.Width-.Width)*0.5
.Top=(Screen.Height-.Height)*0.5
EndWith
GpInput.GdiplusVersion=1
IflngToken=0ThenbolP=(GdiplusStartup(lngToken,GpInput)=Ok)
EndSub
<p>1.可以利用picture.mousemove()事件实现放大效果.即当鼠标经过时,图像的长宽分别加上一个固定值.实现"放大"效果.不过要注意就是,要先设置一个判断标志----放大了一次后就不要卜兆再放大了.不然,当鼠标一直在上面时,不断触发这个事件,会不断变大,与设想效果不同.</p><p>但,picutre控件本身没有鼠标离开事件,无法实现缩小.</p>
<p>2.幸好,窗体 form本身也有mousemove事件.并且,当鼠标经过窗体中控件表面时,</p>
<p>不会触发窗体本身的mousemove事件.那么.利用这点.以下程序演示实现LZ要求.</p>
<p>VB6中新建工程,一个窗体,窗体上放置一个picture控件.图像什么随便设置.大小也是自己设置</p>
<p>全部代码如下:</p>
<p> </p>
<p>Dim ch As Boolean '图像改变大小标志</p>
<p>Private Sub Form_Load()</p>
<p>ch = False '程序运行时,鼠标肯定还没有型袭租经过图像,所以,假</p>
<p>End Sub</p>
<p>Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)</p>
<p> If ch Then '已经放大了,则缩小,当鼠标离开图像时.</p>
<p> Picture1.Width = Picture1.Width - 200 '这个值200和以下的300自己禅嫌改吧</p>
<p> Picture1.Height = Picture1.Height - 300</p>
<p> ch = False</p>
<p> End If</p>
<p>End Sub</p>
<p>Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)</p>
<p> If Not ch Then '鼠标经过,且,还没有放大过.放大一次.</p>
<p> Picture1.Width = Picture1.Width + 200 '这个值200和以下的300自己改吧</p>
<p> Picture1.Height = Picture1.Height + 300</p>
<p> ch = True</p>
<p> End If</p>
<p>End Sub</p>
<p></p>
AutoSize 属性是PictureBox控件的属性,决定是否自动改变大小以适应图片的实际大小。--图片大小不变,改变PictureBox大小。
Stretch 属性是Image控件的属性,决定是否通过改变图片的大小以适应Image的大小。--Image大小不变,改变图片大小(图片自动缩放)。
Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB
都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于
BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以历凯轻易的使
用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。猛昌程序员可以轻松的使用VB提供的枝烂扒
组件快速建立一个应用程序。
visual — 英音:['vizjuəl];美音:['vi3u:əl]
basic — 英音:['beisik];美音:['besik]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)