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

在继学生信息管理系统之后,我们迎来了一个更有挑战的系统——机房收费系统。在与其他工作的同时我也尝试着开始了这个宏伟工程。刚刚开始总是会有各种各样的问题,就只是主窗体,就让人大费脑筋啊,跟大家分享一下我的历程吧。

首先是窗体控件的添加。在MDI主窗体中,我们是不能直接添加大部分控件的,但可以添加PictureBox控件,我们的主界面是有背景的,这样我们就可以先添加一个PictureBox控件,然后将所有控件都添加到PictureBox的内部,把它当做一个容器。这样主界面的布局问题很容易解决了。

然后是运行之后,子窗体不能显示出来,这是让很多人头疼的问题,通过各种查找我找到了这个方法:首先我们需要调用一个API函数,在通用中编写如下代码:

<span style="font-size:18px;"><strong>Private Declare Function SetParent Lib "user32" (ByVal hWndCild As Long, ByVal hWndNewParent As Long) As Long</strong></span>

另外我们还需要在加载窗体的单击事件中添加代码:

<span style="font-size:18px;"><strong>Private Sub inquireblcMenu_Click()
    '显示查询窗体
    frminquireblc.Show
    Call SetParent(frminquireblc.hWnd, Picture1.hWnd)
End Sub</strong></span>

这样我们的窗体可以加载出来了,但是并不能完全显示出来,我们只能看到一部分,而且是很丑的一小部分:

机房收费系统——MDI窗体与子窗体问题_第1张图片

这是极其不可以的,方法还是有滴,我们只需要用代码来设置窗体其实大小就可以了,

<span style="font-size:18px;"><strong>Private Sub Form_Load()
    Me.Width = 11000
    Me.Height = 9000
End Sub</strong></span>

这样我们的问题就轻松解决了,有什么更好的方法同学们可以告知哈!

你可能感兴趣的:(机房收费系统——MDI窗体与子窗体问题)