窗口函數

窗口函數

窗口函數主要可分為四個類型(也許說為"這是為了這次講課分類出來的"更適合一些):

基本介紹


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),就會形成父子窗體結構。