机房收费系统之窗体显示


     进行机房MDI父窗体的创建过程中,最开始遇到的就是MDI窗体中不能添加除picturebox外的其他控件,需要使用picturebox来间接加载。至于为什么不能添加,目前还没有找到可理解的理由。(有合理解释的同学们可以留言)


     当MDI窗体创建完成后,使用菜单栏点击是子窗体显示时却不能让其显示出来,原因是被PictureBox控件所遮挡。


     按照setparent这个api函数便能解决上述问题,具体代码和解释如下。


<span style="font-size:18px;">‘基本数据设定
Private Sub basicDataSet_Click()
   SetParent frmDataSet.hwnd, frmMain.hwnd  
   frmDataSet.Show
End Sub</span>

     其中的Setparent  API 函数的作用是为一个物体指定一个新的父窗体作为容器。

声明方法: 

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

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

参数:

     hWndChild:子窗口句柄

     hWndNewParent:新的父窗口句柄。如果该参数是NULL,则桌面窗口就成为新的父窗口。


     窗体是能够显示了,可是却是下面这个样子?

 


      那个子窗体被隐藏着呢,双击或者下拉才能全部显示,这样有些麻烦。所以只需修改子窗体显示时的尺寸即可。即子窗体borderstyle属性设置为2的前提下,form_load事件中写入me.height=***,me.width=***.其显示时大小为定义值。


     运行时能够观察到,单击任何一个窗体,之前打开的窗体就会自动最小化,可以添加如下代码实现

<span style="font-size:18px;">Private Sub Form_Deactivate()  '当其不再是活动窗口时,最小化到左下角,并依次排列  
    If Me.WindowState <> 1 Then  
        Me.WindowState = 1  
    End If  
End Sub</span>


你可能感兴趣的:(机房收费系统之窗体显示)