一个很有难度的问题,真正的高手 COME IN !参与有分

810303 2001-12-07 11:34:37
我要在一个控件中显示图片,如果图片太大,如何让其正好满屏(满足 width<=800(1024)、HEIGHT<=600(768),依次类推),不论是用API还是其他控件(免费或有注册码)皆可,要有说明(中文)。采用后给分。
...全文
209 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
gameboy999 2001-12-07
  • 打赏
  • 举报
回复
image控件不就支持缩放吗?。。。也许我没明白意思
mmzxg 2001-12-07
  • 打赏
  • 举报
回复
楼上,可以把你的处理贴出来么。。。。
griefforyou 2001-12-07
  • 打赏
  • 举报
回复
控件到是没有...不过我写了一个自动换墙纸的小程序,里面可以控制一个图片按比例显示在一个区域内(可以自定义大小)
810303 2001-12-07
  • 打赏
  • 举报
回复
没人会吗?
810303 2001-12-07
  • 打赏
  • 举报
回复
有列子最好
email: iamhanhai@sohu.com
plutu 2001-12-07
  • 打赏
  • 举报
回复
老妖的可行
lou_df 2001-12-07
  • 打赏
  • 举报
回复
用image控件,大小设为窗口大小.
ulihc 2001-12-07
  • 打赏
  • 举报
回复
不必要这么麻烦了,上面老兄说得对,用image什么都能解决,不过要把image的。stretch属性设置为TRUE
j_x_y 2001-12-07
  • 打赏
  • 举报
回复
学习~!
yangzhaoyu 2001-12-07
  • 打赏
  • 举报
回复
图大于窗口时(Ratio<1)对图进行缩放
yangzhaoyu 2001-12-07
  • 打赏
  • 举报
回复
图大于窗口时(Ratio<1)对图进行缩放
yangzhaoyu 2001-12-07
  • 打赏
  • 举报
回复
修正
If WRatio > HRatio Then
Ratio = HRatio
Else
Ratio=WRatio
End if

preImgWidth 图的实际宽度
preImgHeight 图的实际高度
WndWidth 窗口的宽度
WndHeight 窗口的高度
WRatio 图与窗口的宽度比

HRatio 图与窗口的高度比
Ratio 图全部显示的比例
图大于窗口时(Ratio>1)对图进行缩放
810303 2001-12-07
  • 打赏
  • 举报
回复
要不把几个变量的意思说一下
810303 2001-12-07
  • 打赏
  • 举报
回复
这样的图片太小,有没有办法大点呀!
810303 2001-12-07
  • 打赏
  • 举报
回复
to yangzhaoyu(老妖) ,谢谢,可以说一下原理吗?
yangzhaoyu 2001-12-07
  • 打赏
  • 举报
回复
add image1,command1
Private Sub Command1_Click()
Dim preImgWidth As Long
Dim preImgHeight As Long
Dim WndWidth As Long
Dim WndHeight As Long
Dim WRatio As Double
Dim HRatio As Double
Dim Ratio As Double
Dim preScaleMode As Integer
preScaleMode = Form1.ScaleMode
Form1.ScaleMode = 1
Image1.Stretch = False
'Image1.Visible = False
Image1.Picture = LoadPicture("d:\my pictures\06722.jpg")
Image1.Stretch = True
preImgWidth = Image1.Width
preImgHeight = Image1.Height
WndWidth = Form1.ScaleWidth
WndHeight = Form1.ScaleHeight
WRatio = WndWidth / preImgWidth
HRatio = WndHeight / preImgHeight
If WRatio > HRatio Then Ratio = HRatio
If Ratio < 1 Then
Image1.Width = preImgWidth * Ratio
Image1.Height = preImgHeight * Ratio
End If
Image1.Move (Form1.ScaleWidth - Image1.Width) / 2, (Form1.ScaleHeight - Image1.Height) / 2
Image1.Visible = True
Form1.ScaleMode = preScaleMode

End Sub

yangzhaoyu 2001-12-07
  • 打赏
  • 举报
回复
add image1,command1
Private Sub Command1_Click()
Dim preImgWidth As Long
Dim preImgHeight As Long
Dim WndWidth As Long
Dim WndHeight As Long
Dim WRatio As Double
Dim HRatio As Double
Dim Ratio As Double
Dim preScaleMode As Integer
preScaleMode = Form1.ScaleMode
Form1.ScaleMode = 1
Image1.Stretch = False
'Image1.Visible = False
Image1.Picture = LoadPicture("d:\my pictures\06722.jpg")
Image1.Stretch = True
preImgWidth = Image1.Width
preImgHeight = Image1.Height
WndWidth = Form1.ScaleWidth
WndHeight = Form1.ScaleHeight
WRatio = WndWidth / preImgWidth
HRatio = WndHeight / preImgHeight
If WRatio > HRatio Then Ratio = HRatio
If Ratio < 1 Then
Image1.Width = preImgWidth * Ratio
Image1.Height = preImgHeight * Ratio
End If
Image1.Move (Form1.ScaleWidth - Image1.Width) / 2, (Form1.ScaleHeight - Image1.Height) / 2
Image1.Visible = True
Form1.ScaleMode = preScaleMode

End Sub

cmpp 2001-12-07
  • 打赏
  • 举报
回复
真正的高手,就干这个,搞笑!
810303 2001-12-07
  • 打赏
  • 举报
回复
TO :DeityFox(神狐) 能给一列子吗?
DeityFox 2001-12-07
  • 打赏
  • 举报
回复
在pivtureBox 内加一个 image控件, 将其拉伸属性设为 true.
把pivtureBox设为同窗体一样大
加载更多回复(3)

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧