問題引入:
機房收費系統中在主窗體新增picture可以比較方便的將我們需要的控制項新增到窗體上,但是這也導致了一下問題,因為是」相同的乙個級別「,所以耍大牌的picture將其他的子窗體完完全全的擋在了後面
遇到問題、解決問題
一、比較受歡迎的方法是
1、引用api函式
private declare function getusername lib "advapi32.dll" alias "getusernamea" (byval lpbuffer as string, nsize as long) as long
2、在要開啟窗體的**處新增
比如要開啟frmabout
3、在開啟窗體的activate中frmabout.show
setparent frmabout.hwnd, frmmain.picture1.hwnd
或者在deactivate中dim a as form
for each a in forms
if a.name <> mdiform1.name and a.name <> me.name then
a.windowstate = 1
end if
next
vbnormal 0if me.windowstate <> 1 then
me.windowstate = 1
end if
正常 vbminimized 1 最小化
vbmaximized 2 最大化
另一種:窗體自動最小化
二、1private declare function getforegroundwindow lib "user32" () as long
private sub form1_load()
timer1.interval = 100
end sub
private sub timer1_timer()
dim frmcurr as form
if getforegroundwindow <> me.hwnd then '判斷獲取的控制代碼與本窗體的控制代碼是否一致
frmcurr.windowstate = 1 '如果不一致就最小化
end if
end sub
、載入乙個主窗體
mdifrom
,但是只要它的外殼,另外建乙個普通窗體如
from1
,將該窗體『內嵌
』主窗體中2、
主窗體show
的時候該
from1
跟著show
3、其大小跟父窗體的大小相同
4、from1窗體的boderstyle屬性設定為 0-none 5
、利用父窗體的resize
事件(簡單舉例)
:當乙個物件第一次顯示或當乙個物件的視窗狀態改變時該事件發生
**:
private subform_load()
text1.text =""
end sub
本來面目:private subform_resize()
text1.move 0, 0, scalewidth, scaleheight
end sub

效果:
以上可以實現這兩個窗體完美結合了,這帶來好處也有壞處,如果一不小心點到
from1
,那麼其他正在用的窗體就會被隱藏在
from1
後,而from1
是鋪滿整個父窗體的,也就是說被隱藏的窗體是不太可能被找到的,因此我們引進了
zorder
方法(另乙個)
form1.zorder 1
呵呵呵呵呵呵呵
收費中為了讓from1位於最底層,需要在每乙個可能成為活動窗體的activate事件中新增
form1.zorder 1
如果有錯誤,歡迎交流
機房收費之充值窗體
自學生系統之後的另乙個系統,不過這次沒有原始碼,需要自己去慢慢摸索,不能著急,在此期間也出了好多問題,下面來看看我弄了一下午的充值窗體吧 充值窗體功能 為卡充值金額,並對最新餘額進行更新。步驟 1 輸入卡號後,判斷該卡是否未註冊或者已登出 通過學生資訊表查詢 有個提示。2 輸入充值金額後判斷該金額是...
機房收費系統結賬窗體
結賬,概括的來說,就讓管理員知道每天機房的金錢收支。詳細的說是把每個操作員一天收支明細列出來讓管理員一目了然。下面我們先來看看結賬的介面,如下圖 經過分析,我們可知道,這就是管理員看操作員一天的工作明細,即售卡,充值,退卡的情況。1 購卡 就是在student info表總查詢沒有結賬的那些新註冊的...
機房收費系統系列二 MDI子窗體和主窗體顯示
在機房收費系統中,frmmain作為mdi的主窗體,想要在mdi主窗體上新增控制項,picture控制項是最好的伴侶,但是在新增了picture控制項以後,問題也就隨之而來了。點選子窗體的時候,子窗體被 吃掉 了,怎麼樣讓他顯示出來呢?想要解決picture控制項擋住子窗體的,這裡就用到了api函式...