Windows視窗風格詳細解釋

2021-09-06 06:05:24 字數 1137 閱讀 9968

視窗風格是各種視窗開發的重要基礎之一。它可以分為普通風格(ws_系列)和擴充套件風格(ws_ex_系列)。從其特點上,主要分成兩大類:

ws_ex_topmost、ws_ex_mdichild等。(這裡的關係並不是指foreground/background window和z-order的概念)

2.         一類表明視窗自身的外觀特徵,包括:ws_border、ws_caption、ws_minimize、ws­­_minimizebox、ws_dlgframe、

ws_ex_dlgmodalframe 、ws_ex_windowedge等。

例如:乙個標準的dialog視窗,除了dialog自身的風格(ds_系列)外,其視窗風格如下:

普通風格:ws_caption | ws_popup | ws_visible | ws_clipsiblings | ws_sysmenu

乙個標準的frame視窗,其風格如下:

擴充套件風格: ws_ex_left | ws_ex_ltrreading | ws_ex_rightscrollbar | ws_ex_windowedge

大部分的視窗風格都比較容易理解。下面重點講解一下第一類風格中主要幾個風格的差異:

上面提到了top-level視窗,因此有必要解釋下面幾個方法的差異:

getparent方法:如果是子視窗(具有ws_child風格),那麼總能得到乙個有效的臨時視窗物件(immediate window);如果是top-level視窗,又分為兩種情況:如果該視窗為非擁有(unowned),那麼返回null,否則,返回擁有者視窗物件。因此,getparent並非總是返回父視窗。

getowner方法:獲得擁有者視窗,預設為父視窗。父子視窗中的子視窗只能出現在父視窗的客戶區域,而具有擁有者視窗的視窗可以出現在桌面的任何位置。這裡的owner視窗,不同於api方法getwindow獲得的owner視窗,它是mfc特定的概念。

getancestor方法:獲得祖先視窗。有三個選擇,ga_parent, ga_root, ga_rootowner

mfc中的immediate視窗:在msdn中關於mfc的描述中,經常能看到immediate和permanent window字樣。其中,immediate視窗是mfc中臨時產生的視窗物件,mfc會定期清理這些物件,因此通常不可以儲存作為類成員變數。

視窗風格 視窗類風格

視窗風格 ws border 新建乙個有邊框的視窗 ws caption 新建乙個有邊框 標題欄的視窗。不能和 ws dlgframe 一起用 ws child 新建乙個子視窗,不能和 ws popup 一起用 ws childwindow 和 ws child 風格一樣 ws clipchildr...

mfc 視窗風格

視窗風格 window style ws border 有邊框視窗 ws caption 必須和ws border風格配合,但不能與ws dlgframe風格一起使用。指示視窗包含標題要部分。ws child 說明視窗為子視窗,不能應用於彈出式視窗風格 ws popup ws childwindow...

視窗風格 Window style

ws border 有邊框視窗 ws caption 必須和ws border風格配合,但不能與ws dlgframe風格一起使用。指示視窗包含標題要部分。ws child 說明視窗為子視窗,不能應用於彈出式視窗風格 ws popup ws childwindow 同ws child。ws clip...