机房收费系统之子窗体显示的那些事儿

         情景回顾一:当要到资料后,就开始自己的机房收费系统,当时没想那么多,就在MDI窗体上加了资料的图片,然后就开始各种添加控件,当所有窗体都弄好的时候,就开始对自己窗体显示的位置有些不满意了,然后就把MDIChild的属性改成TRUE问题就出现了--

         1、如果picure够大的话就出现在最上方

         2、如果不能铺满整个电脑屏幕的话就出现在下面

         问题解决:

         1、首先声明SetParent函数

         Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
         '调用API函数 改变子窗体的父窗体

         (API函数)

         2、在主窗体的设计模式下click事件下面添加以下代码(以关于为例)

<span style="font-size:18px;">    Private Sub aboutMenu_Click()
        SetParent frmAbout.hwnd, Picture1.hwnd  '改变子窗体的父窗体
        frmAbout.Show                               '显示关于
   
    End Sub
</span>

         picture1为控件的Name  frmAbout为窗体的名称,这样的话窗体就能完美的显示在主窗体上了。

        情景回顾二:1、最大化最小化按钮显示不出来

                                 2、无法把窗体最小化到左下角,没办法自动最小化。

        问题解决:

           1、为了不让我的窗体在运行模式下被别人改动,我就把窗体的borderstyle设置成了3,结果改变MaxButton和MinButton属性为TRUE后没什么变化,后来仔细研究后把属 性改成了1,最小化和最大化的按钮是显示出来了。

           2、因为当时为了美观,就把picture铺满了整个全屏,但是相应的问题也就出来了,这就是无法最小化到左下角的根源。让picuture最下方的横线显示在电脑屏幕上就ok了。 想让它自动最小化,看下面的代码:

 Private Sub Form_Deactivate()

<span style="font-size:18px;">    '不在是活动窗口时发生
    '  (0-正常,1-最小化,2-最大化)
    If Me.WindowState <> 1 Then
        Me.WindowState = 1
    End If
End Sub</span>
         这样你就能自动最小化窗体了。

         问题越多越让人思考,越让人兴奋。


   

         

         

你可能感兴趣的:(子窗体,主窗体,自动最小化)