【第22期】观点:IT 行业加班,到底有没有价值?

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

原创 2016年08月29日 17:32:52

窗体显示问题

一个工程中只允许有一个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




版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

机房收费系统问题(二)——MDI子窗体不显示

今天把MDI窗体的菜单项建立好了,所以就想着把MDI子窗体也建立好,然后点击一下菜单看能不能运行,结果不出我所料,它就是不能运行。好苦恼,我把代码也敲好了,怎么它就是不能运行呢。百度了一下,原来是主窗...

机房收费系统之条件查询窗体

这种窗体的功能:对某个表进行限定条件的查询。 步骤: <span style="font-s

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

机房收费系统-MDI窗体控件不能放置以及子窗体不能显示问题

今天在整理机房系统主界面时,发现放置控件一直提示 刚开始一直以为自己把MDI窗体的属性给修改错了才会这样的,然后自己找了找相关资料发现MDI窗体是不能放置无对其属性的控件的。 那么怎么做才能在MDI窗...

vb.net 防止MDI子窗体被多次实例化的四种方法

[url]http://blog.csdn.net/warsgrobe/article/details/438020[/url] [b]方法一[/b] 可能没有什么实用性,只适合简单项目: [code="java"] Dim frmTmp...

数据库—机房收费系统之MDI窗体与子窗体

刚开始做机房收费系统的时候,就遇到了这样一个问题我的解题方法和思路.
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)