VB中如何才能自动放大缩小图片填充到图片框中啊?

VB中如何才能自动放大缩小图片填充到图片框中啊?,第1张

实现代码:

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]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12333183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存