我先在主窗体上放了一个picturebox,在picturebox里放了一个image,设好image的图片,然后主窗体Resize事件里代码如下:
Private Sub MDIForm_Resize()
Picture1.Visible = False
Picture1.Height = Me.ScaleHeight + 60
Image1.Width = Me.ScaleWidth
Image1.Height = Me.ScaleHeight + 60
Picture1.Visible = True
End Sub这样可以实现上述我要实现的功能,但是问题来了,这样做之后,就无法打开子窗口了,
多次尝试之后发现,子窗体是显示在picturebox之外的区域,而不能显示在picturebox之上,怎么才能让picturebox作为背景呢?
Private Sub MDIForm_Resize()
Picture1.Visible = False
Picture1.Height = Me.ScaleHeight + 60
Image1.Width = Me.ScaleWidth
Image1.Height = Me.ScaleHeight + 60
Picture1.Visible = True
End Sub这样可以实现上述我要实现的功能,但是问题来了,这样做之后,就无法打开子窗口了,
多次尝试之后发现,子窗体是显示在picturebox之外的区域,而不能显示在picturebox之上,怎么才能让picturebox作为背景呢?
解决方案 »
- 八卦八卦--被P过腿,或者P过别人吗?
- 用VB开发的软件,如可在IE中加一个链接就能调用,就像点下载时,会打开网际快车这样的?
- vb调用vc的dll问题
- 关于winsock的重新连接问题
- 请问有用过vsprint7.0和vsflexgrid.ocx编程的高手
- smartvsd.vxd是用来读磁盘序列号的文件,我将它拷贝到System\Iosubsys目录下,需要重启才能有效。怎样才能不用重启就生效呢?
- 可否实现使文本框具有记忆的功能?
- 设计书问题:
- 在多个用户同时访问数据库的情况下rs.open sql,conn,1,3,与rs.open sql,conn,2,2(存在的最大区别是什么)
- 如何才能知道当前的分辨率?
- 谁知道 vb5 时代一个叫 xing 的人
- 数据绑顶控件如何指定数据源?很多的表,不可能每个都指定ADO或DAO !
在窗体中放入一个pictureBox(picture1)
代码如下:
Option Explicit Private p As PicturePrivate Sub MDIForm_Load()
'0.jpg是你想放在界面的图片
Set p = LoadPicture(App.Path & "\0.jpg")
End SubPrivate Sub MDIForm_Resize()
Picture1.Top = 0
Picture1.Height = frmMDI.Height
Picture1.PaintPicture p, 0, 0, Picture1.Width, Picture1.Height
End Sub
' pic.AutoRedraw = True
' pic.AutoRedraw = True
'不过子窗体会把背景搞坏,仅提供参考
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End TypeConst Srccopy = &HCC0020
Private Sub MDIForm_Activate()
Call MDIForm_Resize
End SubPrivate Sub MDIForm_Resize()
Dim hwnds As Long
Dim re1 As RECT
Dim re2 As RECT
hwnds = FindWindowEx(MDIForm1.hwnd, 0, "MDIClient", vbNullString)
GetWindowRect hwnds, re1
GetWindowRect pic.hwnd, re2
StretchBlt GetDC(hwnds), 0, 0, re1.Right - re1.Left, re1.Bottom - re1.Top, pic.hdc, 0, 0, re2.Right - re2.Left, re2.Bottom - re2.Top, Srccopy
End Sub
怎么运行到Set p = LoadPicture(App.Path & "\0.jpg")
时说类型不匹配啊!注:我已换成我自己的路径了
//主窗体
Private Sub MDIForm_Load()
Me.WindowState = vbMaximized Frm_bg.Show
Frm_bg.ZOrder (0)
End SubPrivate Sub MDIForm_Resize()
If Me.WindowState <> vbMinimized Then
Frm_bg.Height = Me.Height - 1450 //这是因为我上面有菜单和TOOLBAR
Frm_bg.Width = Me.Width - 150
End If
End Sub//子窗体
BorderStyle=0Private Sub Form_Load()
On Error GoTo NewPic
Img_bg.Picture = LoadPicture("youpic.jpg")
Exit SubNewPic:
If (Err.Number = 53) Or (Err.Number = 76) Then
Img_bg.Picture = LoadPicture(App.Path + "\default.jpg")
Resume Next
End If
End SubPrivate Sub Form_Resize()
Img_bg.Width = Me.Width
Img_bg.Height = Me.Height
End Sub
Private Sub MDIForm_Load()
frmZBack.Show
frmZBack.ZOrder (0)
End SubPrivate Sub MDIForm_Resize()
'让背景图随着主窗口改变大小
With frmZBack
.Width = Me.ScaleWidth
.Height = Me.ScaleHeight
.Image1.Width = .Width
.Image1.Height = .ScaleHeight
End With
End Sub
我有一个很漂亮的例程,请把Email通过短消息给我,我发给你
有没有这句:
Private p As Picture
这几行代码我都运行过了的
没有问题呀.
方法2:将图片放在一个子窗体中,让此子窗体做为主窗体背景。
先在主窗体放一个picture1,再在picture1里放一个image1,指定image1的图片,
Private Sub MDIForm_Load()
Picture1.AutoRedraw = True
Picture1.Align = 1
Picture1.BorderStyle = 0
End Sub
Private Sub MDIForm_Resize()
'让背景图随着主窗口改变大小
If Me.WindowState = vbMinimized Then
Exit Sub
End If Picture1.Height = Me.Height - 30 * Screen.TwipsPerPixelY
Picture1.Visible = True
Picture1.PaintPicture Image1.Picture, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, 0, 0
Me.Picture = Picture1.Image
Picture1.Visible = FalseEnd Sub
急招vb程序员,熟练vb编程及数据库
[email protected]
www.widersun.com
待遇优,上海工作