1. 程式人生 > >機房收費系統之MDI主窗體和子窗體(覆蓋)

機房收費系統之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事件

多舉幾個例子,從中找到他們的共同點

3、屬性設定

    BorderStyle:  設定為1
    MDIChild:     改為Ture

4、跳轉設定

    先從上機開始吧,當我們上機後輸入的卡號可能沒有錢了,按照他的合理性他會提示我們讓我們及時充值,這樣就會直接跳轉到充值窗體,方便我們的使用,但是我們同樣會看到他會被主窗體的圖片給“吃掉”,所以在任何一個跳轉窗體前都要加上Set Parent函式程式碼。

舉例說明:

If mrc.判斷
        MsgBox "餘額不太多了,請先充值再上機!", vbOKOnly + vbExclamation, "溫馨提示"
        SetParent frm*.hwnd, frmMain.hwnd
        frm*.Show
        Exit Sub
    End If

    好了問題解決了,快來試試吧~