机房收费系统系列二:MDI子窗体和主窗体显示

在机房收费系统中,frmmain作为MDI的主窗体,想要在MDI主窗体上添加控件,picture控件是最好的伴侣,但是在添加了picture控件以后,问题也就随之而来了。点击子窗体的时候,子窗体被“吃掉”了,怎么样让他显示出来呢?想要解决picture控件挡住子窗体的,这里就用到了API函数中的SetParent函数。

SetParent的函数功能:改变某个子窗体的父窗口

下面看解决方法:

1、首先在模块中声明SetParent函数

声明方法:

Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

2、在MDI主窗体的菜单中找到想要显示的窗体,在他的click事件中,编写代码:(这里以注册的窗体为例子,进行说明)

<strong>Private Sub registration_Click()
    frmregist.Show
    SetParent frmregist.hwnd, frmmain.hwnd
End Sub</strong>
格式说明:setparent +要显示的子窗体.hwnd,MDI主窗体.hwnd

3、这样就可以显示出来了,但是显示的只有子窗体大小不合适,这时我们需要对MDI子窗体的高度和宽度进行设置,这时,子窗体的大小就合适了。

me.width=数字

me.height=数字


还有一种方法,在点击MDI子窗体的时候,把picture控件隐藏了就可以,Picture1.Visible = False,这个试用于MDI主窗体里面只有菜单栏的情况。机房收费系统的MDI主窗体上还有上下机,所以用第一种方法就好了。

 

原文地址:https://www.cnblogs.com/chenxiaochan/p/7237648.html