子窗口必須具有這個屬性,子窗口只能夠出現(xiàn)在父窗口的客戶區(qū)域,這是子窗口和具有交迭屬性的窗口以及彈出屬性的窗口的主要區(qū)別,創(chuàng)建子窗口的時候,位置和大小不能夠使用CW_USEDEFAULT這個值,否則是不能夠創(chuàng)建窗口的。
WS_CAPTION
當窗口被設置這個屬性的時候,窗口的最上頭會有標題欄,應用程序可以通過SetWindowText這個函數(shù)來改變標題欄的標題,通常具有標題欄的窗口還具有最大、最小、關閉按鈕,和系統(tǒng)菜單。如果一個窗口沒有標題欄,那么Window是不會創(chuàng)建這些東西的,即使是用戶指定了這些屬性,系統(tǒng)菜單是依賴標題欄窗口的存在而存在的,如果沒有標題欄那么是一定不會有系統(tǒng)菜單的存在的。具有標題欄的窗口通常具有單線的邊界具有可以改變窗口大小的屬性,通常具有標題欄的窗口是不能具有對話框的邊界屬性的,除非為窗口設置WS_EX_DLGMODALFRAME屬性。 WS_MINIMIZEBOX
當為窗口設置這個屬性的時候,窗口的標題欄上會有一個最小化的按鈕,其實對于Window來實現(xiàn)這個屬性的時候,只是在標題欄上面放置了一個最小化的位圖,當用戶點擊這個最小化位圖的時候,窗口最小化,如果最大化位圖最在,那么最小化位圖被放置在最大化位圖的左邊。沒有這個屬性的窗口是不能夠最小化的。
WS_MAXIMIZEBOX
當為窗口設置這個屬性的時候,窗口的標題欄的右上會被放置一個最大化的位圖,如果窗口設置了這個屬性,用戶可以點擊最大化的位圖或者是通過系統(tǒng)菜單來實現(xiàn)窗口的最大化,沒有這個屬性的窗口是不能夠被最大化的。
WS_SYSMENU
如果為窗口指定這個屬性,那么就會在窗口的左上角上放置系統(tǒng)菜單位圖,系統(tǒng)菜單為用戶提供了操作窗口的接口,通常系統(tǒng)菜單會有下面這些系統(tǒng)命令:
恢復最小化的窗口使用鍵盤移動窗口使用鍵盤改變窗口的大小最小化窗口最大化窗口關閉窗口切換到其他的任務
如果一個窗口有系統(tǒng)菜單,用戶可以通過點擊系統(tǒng)菜單圖標來調用系統(tǒng)菜單,或者通過Alt+空格的快捷鍵調出系統(tǒng)菜單,或者通過點擊任務欄上窗口的圖標來調出系統(tǒng)菜單,如果一個窗口沒有系統(tǒng)菜單,那么用戶不能夠通過鍵盤來實現(xiàn)系統(tǒng)命令,除非應用程序自身提供了這樣的接口。系統(tǒng)菜單對于最大化的窗口也是很有用處的,最大化的窗口覆蓋了整個屏幕,這樣的窗口不能夠被移動,除非恢復到不是最大化的狀態(tài),如果這個最大化的窗口有了系統(tǒng)菜單,則就不必一定恢復到非最大化的狀態(tài)才能夠移動。
WS_HSCROLL
如果窗口被指定了這個屬性,那么窗口會有一個水平的滾動條,窗口是不會自動的滾動滾動條的,如果應用程序要支持滾動條,那么必須自己處理WM_HSCROLL消息,這個屬性通常是在窗口創(chuàng)建的時候,被指定的。
WS_VSCROLL
如果窗口被指定了這個屬性,那么窗口會有一個豎直的滾動條,窗口不會自動的滾動滾動條,應用程序必須自己處理WM_VSCROOL消息來處理滾動條滾動的消息,這個屬性通常是在窗口被創(chuàng)建的時候指定的。
WS_BORDER
如果窗口被指定了這個屬性,那么窗口會有一個單線的邊在窗口的周圍,如果沒有指定這個屬性,但是窗口具有標題欄,那么窗口會自動的擁有這個屬性,如果窗口沒有這個屬性,擁有這個屬性的窗口不能夠通過鍵盤或者是鼠標改變窗口的大小。
WS_DLGFRAME
如果窗口被指定了這個屬性,那么窗口具有對話框的邊框,這個屬性通常是用在對話框窗口的,只能夠用在窗口沒有標題欄的情況下,如果一個不是對話框的窗口使用了這個窗口,那么窗口必須被指定WS_EX_DLGMODALFRAME屬性。使用這個屬性創(chuàng)建的窗口,不能夠通過鍵盤和鼠標改變窗口的大小。
WS_THICKFRAME
當窗口被指定了這個屬性,那么窗口會有一個可以改變大小的邊框,這種屬性通常用在程序的主窗口,具有這種屬性的窗口的大小可以通過鍵盤或者鼠標來改變。
WS_CLIPCHILDREN
這個屬性用在具有子窗口的窗口,使用這個屬性,可以使Window把子窗口所占的區(qū)域拷貝到父窗口,而不是甴父窗口直接的畫子窗口所屬的區(qū)域,如果窗口沒有指定這個屬性,那么那么父窗口會覆蓋子窗口的區(qū)域。在一些圖片顯示或者OpenGL顯示的窗口中,指定這個屬性是很重要的。
WS_CLIPSIBLINGS
當窗口賦予這個屬性,窗口在自繪的時候,不會繪制到同屬的子窗口,所有具有交迭屬性和彈出屬性的窗口都具有這個屬性,所有的頂層窗口都具有這個屬性,這樣一來頂層窗口在自繪的時候,不會繪制在到其他的頂層窗口。
WS_VISIBLE
當窗口被設置這個屬性的時候,窗口是可見的,默認的情況下,應用程序必須自己調用ShowWindow來顯示窗口。
WS_DISABLED
當窗口被設置這個屬性的時候,創(chuàng)建的窗口不能夠接受用戶的輸入,除非應用程序自身提供方法來輸入。這個屬性通常用在Window控件上面。
WS_CHILDWINDOW
這個屬性同WS_CHILD。
WS_OVERLAPPEDWINDOW
這個屬性同WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX,這個屬性通常用在應用程序的主窗口。
WS_POPUPWINDOW
這個屬性同WS_POPUP|WS_BORDER|WS_SYSMENU,盡管這個屬性中包含了WS_SYSMENU屬性,如果窗口沒有WS_CAPTION屬性,那么窗口也不會有系統(tǒng)菜單。
WS_EX_DLGMODALFRAME
當窗口設置了這個屬性的時候,窗口具有對話框的邊框,這個屬性通常用在對話框窗口,不過任何窗口都可以使用這個屬性來獲得對話框的邊框。
WS_EX_NOPARENTNOTIFY
這個屬性是用在子窗口上的,當子窗口設置了這個屬性,Window不發(fā)送WM_NOTIFY消息給子窗口的父窗口,默認情況下,Window會在子窗口創(chuàng)建或者銷毀的時候發(fā)送WM_NOTIFY消息給子窗口的父窗口。WS_EX_TOPMOST
這個屬性僅用在頂層窗口,對于子窗口設置這個屬性是被忽略的,如果窗口設置了這個屬性,那么窗口會一直在其他窗口的上面。
WS_EX_ACCEPTFILES
窗口設置了這個屬性,那么窗口可以接受拖放的對象。
WS_EX_TRANSPARENT
這個屬性能夠使窗口透明,設置了這個屬性的窗口的背景使可以被看到的,透明窗口對于鼠標和鍵盤的消息事件并不是透明的