机房收费系统—MDI窗体与子窗体

窗体显示问题

一个工程中只允许有一个MDI窗体

MDI窗体上面有Picture控件,如果不做处理,子窗体显示在picture控件的后面,怎样让其显示在picture前面呢。

一:可以让子窗体显示的时候让picture隐藏,子窗体关闭时picture再显示,这样有些麻烦,并且子窗体显示的时候不到主窗体的内容。

二:利用API函数

SetParent是一个API函数,它作用是指定一个物体为一个物体的父窗体(父窗体严格来说应该是容器)。也就是把一个物体转到另一个物体上面。

具体做法:

1.首先我们要在相应的模块中声明这个函数,在VB6.0的API浏览器中就可以找到这段声明

Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
2.写好声明后就可以应用这部分了,当我们单机MDI窗体上的菜单想要显示另一个子窗体时,我们就可以在单机菜单的Click时间中写上

Private Sub BasicData_Click()
    SetParent frmbasicdate.hWnd, Picture1.hWnd
    frmbasicdate.Show
End Sub
格式:SetParent 你要显示的子窗体名称.hWnd,MDI窗体.hWnd

3.现在子窗体就可以显示了,可是显示的子窗体是和MDI窗体一样大的一个边框,只有点击最大化的时候才可以看到庐山真面目,我们修改一下窗体的大小就可以了

Me.Width=数字

Me.Height=数字

另外还可以将子窗体的BorderStyle的属性改为固定即可,这样就没有了最大化和最小化,你可以自己就选定属性中的MaxButton或MinButton为True即可。

还有一个问题,就是当该窗体不是活动窗体时最小化

Private Sub Form_Deactivate()
    If Me.WindowState <> 1 Then
        Me.WindowState = 1
    End If
End Sub




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/n950814abc/article/details/52355142
所属专栏: 机房收费系统
上一篇机房收费系统—上下机
下一篇机房收费系统—导出excel
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭