windows窗口類型

windows創建的是怎樣的一套窗口理論體系,windows

window窗口有下面的幾個基本的分類app

  • Overlapped Windows 重疊窗口
  • Pop-up Windows 彈出窗口
  • Child Windows 子窗口
  • Layered Windows 分層窗口
  • Message-Only Windows

什麼是層疊窗口

層疊窗口最典型的就是咱們的一個應用窗口的主窗口,若是用WS_OVERLAPPEDWINDOW的屬性建立了窗口,那麼窗口必定會有標題欄,窗口邊框,窗口菜單,和最大最小按鈕。性能

層疊窗口是沒有父窗口的,也就是用GetParent()獲取到的父窗口是NULL操作系統

什麼是彈出窗口

彈出窗口跟層疊窗口最大的區別就是彈出窗口通常都會有個父窗口的,如咱們經常使用的MessageBox就是彈出窗口,而它的父窗口通常就是咱們調用地方的窗口。.net

彈出窗口是特殊的層疊窗口,一般會是dialog對話框,message對話框get

建立窗口的時候指定WS_POPUP風格就會建立彈出窗口後臺

什麼是子窗口

子窗口一般會有 WS_CHILD風格,而且只可以被分配到父窗口的客戶區域。子窗口必需要有父窗口,父窗口能夠是層疊窗口也能夠是彈出窗口甚至也能夠是其它的子窗口渲染

和父窗口的關係
一個已經存在的子窗口是能夠經過SetParent來改變它的父窗口的,也就是能夠將子窗口從舊的父窗口的客戶區中刪除掉,而移動到新的父窗口的客戶區域。也就是說子窗口實際上是能夠隨意改變父窗口的程序

由於子窗口的關係,因而應用程序經常會維持着一個窗口關係鏈,就像是一個族譜同樣。咱們可使用IsChild來判斷一個窗口是不是另外一個窗口的子窗口重定向

什麼是分層窗口

使用分層窗口可以顯著的提高擁有混合形狀的窗口的性能和視覺效果。這些窗口可能會有動態形狀,或者你但願使用alpha混合效果,分層窗口都是不錯的選擇。系統可以自動的組合而且重繪分層窗口和基本的應用窗口。所以分層窗口可以被平滑的渲染,而且不會有典型混合窗口區域的閃爍的狀況。此外分層窗口還可以有部分窗口半透明的效果,這是由於alpha效果的混合

也就是在多窗口疊加的時候使用這個屬性?

分層窗口實際上一種在Windows下可以自動地與非活動窗口進行合成的一種窗口.

利用分層窗口能夠實現不規則窗口和窗口的Alpha混合效果。操做系統自動混合和重畫分層窗口並且平滑渲染和沒有抖顫。

分層窗口的特色就在於,它將窗口的繪製操做進行了從新定義::【由操做系統(而不是應用程序),完成重繪操做,完成的方式是"合成":將窗口當作一副位圖,窗口外形的變化只是"位圖"的變化!而不須要非得經過對WM_PAINT消息來進行.這樣就可以保證分層窗口在概念上包括兩層含義:與傳統相比,這種窗口從外觀上看起來恩奇怪(它能夠是透明或者半透明的,或者是異性的);二是【重定向】:對窗口的重繪操做不須要你手工添加代碼來維護,系統會自動將重繪操做在後臺完成!

http://msdn.microsoft.com/en-us/library/ms997507.aspx

什麼是「僅消息」窗口

一個「僅消息」的窗口容許你發送和接收消息。它是不可見的,沒有z序,不可以被枚舉,而且不能接收廣播消息。這種窗口只是簡單的派遣(中轉)消息。


總參考:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632599(v=vs.85).aspx#types
http://bbs.csdn.net/topics/390716333?page=1

相關文章
相關標籤/搜索