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

图片自动适应大小疑点,求教

2012-01-26 
图片自动适应大小问题,求教要求是这样条件:首先有一个固定大小的picturebox控件,想在上面加载不同分辨率的

图片自动适应大小问题,求教
要求是这样
条件:首先有一个固定大小的picturebox控件,想在上面加载不同分辨率的图片,图片大小不一
要求:1.一个不想用控件来适应图片大小(否掉autosize),第二不想图片比例变形(否掉拉伸)
  2.高度方向上必须和控件等高,长度方向上可以变小(也就是图片要全部显示出来)
  3.图片要在控件中居中显示

请教怎么写或用什么函数?


[解决办法]

VB code
Option ExplicitPrivate Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As LongPrivate Type BITMAP        bmType As Long        bmWidth As Long        bmHeight As Long        bmWidthBytes As Long        bmPlanes As Integer        bmBitsPixel As Integer        bmBits As LongEnd TypeDim bm As BITMAPDim hBmp As LongPublic Sub SameToPicture(ByRef pic As PictureBox, ByVal Ifilename As String)pic.Picture = LoadPicture(Ifilename)hBmp = pic.Picture.HandleGetObject hBmp, LenB(bm), bmpic.Width = bm.bmWidth * Screen.TwipsPerPixelXpic.Height = bm.bmHeight * Screen.TwipsPerPixelYEnd SubPrivate Sub Command1_Click()SameToPicture Picture1, App.Path & "\" & "124.jpg"Picture1.Move 0, 0End Sub
[解决办法]
再给你一种方法,只要一个picturebox(picture1)控件就可以了。
VB code
Private Sub Command3_Click()    Dim p As Picture    Set p = LoadPicture("C:\Documents and Settings\Administrator\My Documents\My Pictures\2009112209300545.jpg")    Picture1.PaintPicture p, (Picture1.Width - ScaleX(p.Width) * Picture1.Height / ScaleY(p.Height)) / 2, 0, _             ScaleX(p.Width) * (Picture1.Height / ScaleY(p.Height)), Picture1.Height, , , ScaleX(p.Width), ScaleY(p.Height)    Set p = Nothing    End Sub 

热点排行