加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何拉伸图片至整个屏幕

发布时间:2020-12-16 23:15:30 所属栏目:大数据 来源:网络整理
导读:VB6中,使用PICTRUEBOX或IMAGE控件,如何让加载在其中的小图片拉伸至整个屏幕大小(当然不覆盖窗体边框、菜单栏、工具栏和状态栏的空间)。 方法有多种,总结如下: 1、用image控件 Private Sub Form_Load() Image1.Stretch = True End Sub Private Sub Form_

VB6中,使用PICTRUEBOX或IMAGE控件,如何让加载在其中的小图片拉伸至整个屏幕大小(当然不覆盖窗体边框、菜单栏、工具栏和状态栏的空间)。

方法有多种,总结如下:

1、用image控件

Private Sub Form_Load()
Image1.Stretch
= True
End Sub

Private Sub Form_Resize()
Image1.Move
0,0,Me.ScaleWidth,Me.ScaleHeight
End Sub

2、用picture控件

用image控件很简单,但用picture控件就麻烦点

Dim TmpPic As IPictureDisp
Private Sub Picture1_Paint()
Picture1.PaintPicture TmpPic,
0,Picture1.ScaleWidth,Picture1.ScaleHeight
End Sub
Private Sub Form_Load()
Set TmpPic = LoadPicture("d:/a.jpg")
End Sub
Private Sub Form_Resize()
Picture1.Move
0,Me.Width,Me.Height
Call Picture1_Paint
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set TmpPic = Nothing
End Sub

3、将你的图片放进ImageList1里

Private Sub Form_Load()
Picture1.AutoRedraw
= True
End Sub
Private Sub Form_Resize()
Picture1.Move
0,Me.Height
Picture1.PaintPicture ImageList1.ListImages(
1).Picture,Me.Height
End Sub

4、不用任何控件,拉伸窗体背景图

殊途同归,但是就这个问题的根本答案或者说最合理的答案是stdpicture的render方法。要想让窗体的背景随窗体大小改变而改变,无需其他控件。

a、如过你的窗体的atuoredraw属性为false,则使用一下代码:

Private BackImage As StdPicture

Private Sub Form_Load()
Set BackImage = LoadPicture("c:/1.bmp")
Me.ScaleMode = 3
End Sub

Private Sub Form_Paint()
BackImage.Render Me.hDC,Me.ScaleHeight,BackImage.Height,BackImage.Width,-BackImage.Height,ByVal 0&
End Sub

Private Sub Form_Resize()
BackImage.Render Me.hDC,ByVal 0&
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set BackImage = Nothing
End Sub

b、如果窗体的AutoRedraw属性为TRUE,则使用一下代码:

Private BackImage As StdPicture

Private Sub Form_Load()
Set BackImage = LoadPicture("c:/1.bmp")
Me.ScaleMode = 3
End Sub

Private Sub Form_Resize()
Me.Cls
BackImage.Render Me.hDC,ByVal 0&
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set BackImage = Nothing
End Sub

这个功能不建议用GDI+来做,GDI+的绘制函数比GDI的要慢很多,在resize这种事件中调用GDI+的绘图函数速度有一定问题。

原帖地址:

http://topic.csdn.net/u/20100114/09/1f33c745-1e55-4606-a133-bcc99f963267.html?87929

http://topic.csdn.net/u/20091110/16/0efe9a9b-a608-4aac-b0d8-2a109fdacd6a.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读