機房收費系統之MDI主窗體和子窗體(覆蓋)
阿新 • • 發佈:2019-01-06
在機房收費系統中,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
好了問題解決了,快來試試吧~