1、視窗分級函式;
2、視窗位置與大小函式;
3、視窗信息函式;
4、其他視窗函式。
以下我們就一一講述。但由於視窗函式比較多,在這裡就選擇性的進行討論。關於視窗函式有多少,具體的用法如何,您可以注意"小雁俠"的VB API站點的技術文檔,或者本站程式下載欄目中的WInAPI幫助文。由於幫助文其內容來自"小雁俠"的網站,因此其內容更新比較起來會較晚一些。
視窗分級函式
系統中運行的視窗是有級別的高低之分的。
一、父子關係。
每個視窗都可能有自己的父視窗和子視窗。但,系統中運行的視窗是有限的,說明總得有個視窗是沒有其父,我們把它叫做頂級視窗。一般把一個應用程式的主視窗就是頂級視窗,VB獨立窗體及MDI窗體都是頂級視窗。視窗間的父子關係一般遵循以下規則∶
1、父視窗顯示時,所有包容在其中的可見的子視窗會隨著父視窗的顯示而顯示出來。
2、父視窗隱藏時,所有包容在其中的子視窗會隨著父視窗的隱藏而隱藏。
3、父視窗被卸載時,跟著自動卸載。
4、父視窗移動時,跟著移動。
二、兄弟關係及Z序列
當然,一位父親有好幾個兒女,都是常見的事情。同樣,一個父視窗可以擁有多個子窗體。比如,位於一個窗體中的各種控制項之間以及MDI視窗的各子視窗之間的關係。父視窗與子視窗的顯示、隱藏、卸載及移動,其先後順序是顯而易見的。那么各兄弟視窗之間的情況會是如何呢?
顯然,兩個互相重疊的兩個子窗體不能都同時顯示出它的全貌,自然有個顯示的順序規則。這個順序規則叫做Z序列。有個解釋為,如果把螢幕坐標看成X軸和Y軸組成的平面(事實上正是如此),那么作為三維坐標系統Z軸可看做是垂直於螢幕的坐標軸。這樣,可以認為螢幕上的所有視窗是垂直於這個Z軸的。在Z軸上,誰在前,誰在後,就產生了一個Z序列。可用WINDOWS API函式和Visual Basic Z序列方法對Z序列進行控制。
有了以上簡單的知識以後,我們就不難套用API視窗分級函式,主要有以下幾個∶
視窗分級函式
函式名 說 明
FIndWIndow 按類名或視窗名(CaptIon)查找一個視窗
FindWIndowEx 類似於FindWindow提供了更多的功能
GetLastActivePopup 針對指定的視窗,取回上一個活動的彈出式視窗的句柄
GetParent 獲得指定視窗父視窗的句柄
GetTopWIndow 獲得指定視窗的第一個子視窗的句柄
GetWIndow 如給定一個視窗句柄,該函式能取回具有特定關係的另一個視窗的句柄。如,第一個子視窗、父視窗或視窗列表內的上一個或下一個視窗。
SetParent 改變任何視窗的父視窗。
從我個人的經驗來看,我最常用的是GetWindow和SEtParent函式。
三、其他視窗
在javascript中一個窗體就有一個window函式,如果在頁面中由其他的窗體(iFrames),就會形成父子窗體結構。