【MFC】Windows窗口样式
00. 目錄
文章目錄
- 00. 目錄
- 01. 框架窗口樣式
- 02. 靜態(tài)樣式
- 03. 窗口樣式
- 04. 擴(kuò)展的窗口樣式
- 05. 附錄
01. 框架窗口樣式
框架窗口樣式適用于 CFrameWnd 類(lèi) 對(duì)象。 在 CFrameWnd::Create的 dwStyle 參數(shù)中指定樣式組合。
| FWS_ADDTOTITLE | 指定要追加到框架窗口標(biāo)題末尾的信息。 例如,“Microsoft Draw 繪圖 in Document1”。 您可以指定在應(yīng)用程序向?qū)У奈臋n模板字符串選項(xiàng)卡中顯示的字符串。 如果需要關(guān)閉此選項(xiàng),請(qǐng)重寫(xiě) CWnd::PreCreateWindow 成員函數(shù)。 |
| FWS_PREFIXTITLE | 在框架窗口標(biāo)題中顯示應(yīng)用程序名稱(chēng)之前的文檔名稱(chēng)。 例如,“文檔-寫(xiě)字板”。 您可以指定在應(yīng)用程序向?qū)У奈臋n模板字符串選項(xiàng)卡中顯示的字符串。 如果需要關(guān)閉此選項(xiàng),請(qǐng)重寫(xiě) CWnd::PreCreateWindow 成員函數(shù)。 |
| FWS_SNAPTOBARS | 控件在處于浮動(dòng)窗口時(shí)(而不是停靠到框架窗口)時(shí)包圍控件欄的框架窗口的大小。 此樣式調(diào)整窗口的大小以適合控件條。 |
02. 靜態(tài)樣式
靜態(tài)樣式應(yīng)用于 CStatic 類(lèi) 對(duì)象。 在 CStatic::Create的 dwStyle 參數(shù)中指定樣式組合。 有關(guān) Windows 中的靜態(tài)控件樣式的詳細(xì)信息,請(qǐng)參閱 (Windows) 的靜態(tài)控件樣式 。
| SS_BITMAP | 指定要在靜態(tài)控件中顯示的位圖。 給定文本是位圖的名稱(chēng), (在資源文件中的其他位置定義) 文件名。 樣式將忽略 nWidth 和 nHeight 參數(shù);控件自動(dòng)調(diào)整自身大小以容納位圖。 |
| SS_BLACKFRAME | 指定一個(gè)框,其中的幀使用與窗口框架相同的顏色繪制。 默認(rèn)為黑色。 |
| SS_BLACKRECT | 指定用用于繪制窗口框架的顏色填充的矩形。 默認(rèn)為黑色。 |
| SS_CENTER | 指定一個(gè)簡(jiǎn)單的矩形并在矩形中居中顯示給定文本。 文本在顯示前進(jìn)行格式設(shè)置。 將擴(kuò)展到行尾的單詞會(huì)自動(dòng)包裝到下一個(gè)居中行的開(kāi)頭。 |
| SS_CENTERIMAGE | 指定如果位圖或圖標(biāo)小于靜態(tài)控件的工作區(qū),則工作區(qū)的其余部分將用位圖或圖標(biāo)左上角中的像素顏色填充。 如果靜態(tài)控件包含單行文本,則文本在控件的工作區(qū)中垂直居中。 |
| SS_ENDELLIPSIS | 如果需要,或 SS_PATHELLIPSIS 將給定字符串的一部分替換為省略號(hào),使結(jié)果適合指定的矩形。 可以指定 SS_END_ELLIPSIS 在字符串末尾替換字符,或 SS_PATHELLIPSIS 以替換字符串中間的字符。 如果字符串包含反斜杠 () 字符,SS_PATHELLIPSIS 將盡可能多地保留最后一個(gè)反斜杠后面的文本。 |
| SS_ENHMETAFILE | 指定要在靜態(tài)控件中顯示的增強(qiáng)型圖元文件。 給定文本為圖元文件的名稱(chēng)。 增強(qiáng)型圖元文件靜態(tài)控件具有固定大小;圖元文件經(jīng)過(guò)縮放以適合靜態(tài)控件的工作區(qū)。 |
| SS_ETCHEDFRAME | 使用 EDGE_ETCHED 邊緣樣式繪制靜態(tài)控件的幀。 |
| SS_ETCHEDHORZ | 使用 EDGE_ETCHED 邊緣樣式繪制靜態(tài)控件的上邊緣和下邊緣。 |
| SS_ETCHEDVERT | 使用 EDGE_ETCHED 邊緣樣式繪制靜態(tài)控件的左邊緣和右邊緣。 |
| SS_GRAYFRAME | 指定一個(gè)框,其中的幀使用與屏幕背景相同的顏色作為桌面) (桌面。 默認(rèn)為灰色。 |
| SS_GRAYRECT | 指定用用于填充屏幕背景的顏色填充的矩形。 默認(rèn)為灰色。 |
| SS_ICON | 指定對(duì)話框中顯示的圖標(biāo)。 給定的文本是在資源文件中的其他位置) 定義的圖標(biāo) (的名稱(chēng)。 忽略 nWidth 和 nHeight 參數(shù);圖標(biāo)自動(dòng)調(diào)整其大小。 |
| SS_LEFT | 指定一個(gè)簡(jiǎn)單的矩形并在矩形中顯示給定文本的左對(duì)齊。 文本在顯示前進(jìn)行格式設(shè)置。 將擴(kuò)展到行尾的單詞會(huì)自動(dòng)換行到下一次刷新行的開(kāi)頭。 |
| SS_LEFTNOWORDWRAP | 指定一個(gè)簡(jiǎn)單的矩形并在矩形中顯示給定文本的左對(duì)齊。 選項(xiàng)卡將展開(kāi),但不會(huì)換行。 延伸超出行尾的文本將被剪裁掉。 |
| SS_NOPREFIX | 除非指定了此樣式,否則,Windows 將解釋控件文本中的任何 “與” 符號(hào) ( # A0) 字符作為快捷鍵前綴字符。 在這種情況下,將刪除與號(hào),并為字符串中的下一個(gè)字符加下劃線。 如果靜態(tài)控件要包含此功能不需要的文本,可以添加 SS_NOPREFIX。 此靜態(tài)控件樣式可以包含在任何定義的靜態(tài)控件中。 可以使用按位 “或” 運(yùn)算符將 SS_NOPREFIX 與其他樣式組合在一起。 當(dāng)需要在對(duì)話框中的靜態(tài)控件中顯示文件名或其他可能包含 “&” 符的字符串時(shí),最常使用此項(xiàng)。 |
| SS_NOTIFY | 當(dāng)用戶(hù)單擊或雙擊控件時(shí),將向父窗口發(fā)送 STN_CLICKED、STN_DBLCLK、STN_DISABLE 和 STN_ENABLE 通知消息。 |
| SS_OWNERDRAW | 指定靜態(tài)控件的所有者負(fù)責(zé)繪制控件。 每當(dāng)需要繪制控件時(shí),所有者窗口都會(huì)收到 WM_DRAWITEM 消息。 |
| SS_REALSIZEIMAGE | 禁止靜態(tài)圖標(biāo)或位圖控件 (即,具有 SS_ICON 或 SS_BITMAP 樣式) 的靜態(tài)控件在加載或繪制時(shí)將調(diào)整其大小。 如果圖標(biāo)或位圖大于目標(biāo)區(qū)域,則會(huì)剪切圖像。 |
| SS_RIGHT | 指定一個(gè)簡(jiǎn)單的矩形并在矩形中顯示給定的文本右對(duì)齊。 文本在顯示前進(jìn)行格式設(shè)置。 將擴(kuò)展到行尾的單詞會(huì)自動(dòng)換行到下一個(gè)右行的開(kāi)頭。 |
| SS_RIGHTJUST | 指定在調(diào)整控件大小時(shí),具有 SS_BITMAP 或 SS_ICON 樣式的靜態(tài)控件右下角保持固定。 只有頂部和左側(cè)會(huì)調(diào)整為容納新的位圖或圖標(biāo)。 |
| SS_SIMPLE | 指定一個(gè)簡(jiǎn)單的矩形,并在矩形中顯示一行文本。 文本行不能以任何方式進(jìn)行縮短或更改。 (控件的父窗口或?qū)υ捒虿坏锰幚?WM_CTLCOLOR 消息。 ) |
| SS_SUNKEN | 在靜態(tài)控件周?chē)L制半凹陷邊框。 |
| SS_USERITEM | 指定用戶(hù)定義的項(xiàng)。 |
| SS_WHITEFRAME | 指定一個(gè)框,其中的框架使用與窗口背景相同的顏色繪制。 默認(rèn)值為白色。 |
| SS_WHITERECT | 指定用填充窗口背景的顏色填充的矩形。 默認(rèn)值為白色。 |
| SS_WORDELLIPSIS | 截?cái)嗖贿m合的文本并添加省略號(hào)。 |
03. 窗口樣式
窗口樣式適用于 CWnd 類(lèi) 對(duì)象。 在 CWnd::Create或 Cwnd::CreateEx的 dwStyle 參數(shù)中指定樣式組合。 有關(guān) Windows 中窗口樣式的詳細(xì)信息,請(qǐng)參閱 windows) (窗口樣式 。
| WS_BORDER | 創(chuàng)建一個(gè)具有邊框的窗口。 |
| WS_CAPTION | 創(chuàng)建一個(gè)具有標(biāo)題欄 (隱含 WS_BORDER 樣式) 的窗口。 不能與 WS_DLGFRAME 樣式一起使用。 |
| WS_CHILD | 創(chuàng)建子窗口。 不能與 WS_POPUP 樣式一起使用。 |
| WS_CHILDWINDOW | 與 WS_CHILD 樣式相同。 |
| WS_CLIPCHILDREN | 在父窗口中繪制時(shí),將排除子窗口占用的區(qū)域。 在創(chuàng)建父窗口時(shí)使用。 |
| WS_CLIPSIBLINGS | 相對(duì)于彼此的位置剪輯子窗口;也就是說(shuō),當(dāng)某個(gè)特定的子窗口收到繪制消息時(shí),WS_CLIPSIBLINGS 樣式會(huì)剪輯子窗口中所有其他重疊的子窗口,以進(jìn)行更新。 (如果未給定 WS_CLIPSIBLINGS 并且子窗口重疊,則在子窗口的工作區(qū)中進(jìn)行繪制時(shí),可以在相鄰子窗口的工作區(qū)中進(jìn)行繪制。僅 ) 用于 WS_CHILD 樣式。 |
| WS_DISABLED | 創(chuàng)建初始禁用的窗口。 |
| WS_DLGFRAME | 創(chuàng)建具有雙邊框但無(wú)標(biāo)題的窗口。 |
| WS_GROUP | 指定控件組中的第一個(gè)控件,用戶(hù)可以使用箭頭鍵從一個(gè)控件移動(dòng)到下一個(gè)控件。 在第一個(gè)控件屬于同一組后,所有用 WS_GROUP 樣式為 FALSE 的控件均為 FALSE。 具有 WS_GROUP 樣式的下一個(gè)控件將啟動(dòng)下一個(gè)組 (即,一個(gè)組在下一步開(kāi)始) 的位置結(jié)束。 |
| WS_HSCROLL | 創(chuàng)建一個(gè)具有水平滾動(dòng)條的窗口。 |
| WS_ICONIC | 創(chuàng)建最初最小化的窗口。 與 WS_MINIMIZE 樣式相同。 |
| WS_MAXIMIZE | 創(chuàng)建最大大小的窗口。 |
| WS_MAXIMIZEBOX | 創(chuàng)建一個(gè)具有 “最大化” 按鈕的窗口。 |
| WS_MINIMIZE | 創(chuàng)建最初最小化的窗口。 僅用于 WS_OVERLAPPED 樣式。 |
| WS_MINIMIZEBOX | 創(chuàng)建一個(gè)具有 “最小化” 按鈕的窗口。 |
| WS_OVERLAPPED | 創(chuàng)建重疊的窗口。 重疊窗口通常具有標(biāo)題和邊框。 |
| WS_OVERLAPPEDWINDOW | 創(chuàng)建具有 WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX 和 WS_MAXIMIZEBOX 樣式的重疊窗口。 |
| WS_POPUP | 創(chuàng)建一個(gè)彈出窗口。 不能與 WS_CHILD 樣式一起使用。 |
| WS_POPUPWINDOW | 用 WS_BORDER、WS_POPUP 和 WS_SYSMENU 樣式創(chuàng)建彈出窗口。 WS_CAPTION 樣式必須與 WS_POPUPWINDOW 樣式組合以使控件菜單可見(jiàn)。 |
| WS_SIZEBOX | 創(chuàng)建一個(gè)具有調(diào)整邊框的窗口。 與 WS_THICKFRAME 樣式相同。 |
| WS_SYSMENU | 創(chuàng)建一個(gè)窗口,該窗口在其標(biāo)題欄中具有一個(gè)控件菜單框。 僅用于帶有標(biāo)題欄的 windows。 |
| WS_TABSTOP | 指定任意數(shù)量的控件,用戶(hù)可以使用 TAB 鍵移動(dòng)這些控件。 TAB 鍵將用戶(hù)移動(dòng)到 WS_TABSTOP 樣式指定的下一個(gè)控件。 |
| WS_THICKFRAME | 創(chuàng)建一個(gè)窗口,該窗口具有可用于調(diào)整窗口大小的粗框架。 |
| WS_TILED | 創(chuàng)建重疊的窗口。 重疊窗口具有標(biāo)題欄和邊框。 與 WS_OVERLAPPED 樣式相同。 |
| WS_TILEDWINDOW | 創(chuàng)建具有 WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX 和 WS_MAXIMIZEBOX 樣式的重疊窗口。 與 WS_OVERLAPPEDWINDOW 樣式相同。 |
| WS_VISIBLE | 創(chuàng)建初始可見(jiàn)的窗口。 |
| WS_VSCROLL | 創(chuàng)建一個(gè)具有垂直滾動(dòng)條的窗口。 |
04. 擴(kuò)展的窗口樣式
擴(kuò)展的窗口樣式適用于 CWnd 類(lèi) 對(duì)象。 指定 CWnd:: CreateEx的 dwExStyle 參數(shù)中樣式的組合。 有關(guān) Windows 中的擴(kuò)展窗口樣式的詳細(xì)信息,請(qǐng)參閱 windows) (擴(kuò)展窗口樣式 。
| WS_EX_ACCEPTFILES | 指定使用此樣式創(chuàng)建的窗口接受拖放文件。 |
| WS_EX_APPWINDOW | 當(dāng)窗口可見(jiàn)時(shí),強(qiáng)制將頂級(jí)窗口拖到任務(wù)欄上。 |
| WS_EX_CLIENTEDGE | 指定窗口具有三維外觀,即具有凹陷邊緣的邊框。 |
| WS_EX_CONTEXTHELP | 在窗口的標(biāo)題欄中包含一個(gè)問(wèn)號(hào)。 當(dāng)用戶(hù)單擊問(wèn)號(hào)時(shí),光標(biāo)將更改為帶有指針的問(wèn)號(hào)。 這時(shí),如果用戶(hù)單擊子窗口,子窗口將收到 WM_HELP 消息。 |
| WS_EX_CONTROLPARENT | 允許用戶(hù)使用 TAB 鍵在窗口的子窗口之間導(dǎo)航。 |
| WS_EX_DLGMODALFRAME | 指定一個(gè)具有雙邊框的窗口,當(dāng)您在 dwStyle 參數(shù)中指定 WS_CAPTION 樣式標(biāo)志時(shí),可以選擇使用標(biāo)題欄 ((可選)) 。 |
| WS_EX_LAYERED | 窗口是 分層窗口。 如果窗口的 類(lèi)樣式 為 CS_OWNDC 或 CS_CLASSDC,則不能使用此樣式。 但是,Microsoft Windows 8 支持子窗口的 WS_EX_LAYERED 樣式,在此窗口中,以前的 Windows 版本僅支持頂級(jí)窗口。 |
| WS_EX_LEFT | 提供窗口一般左對(duì)齊屬性。 這是默認(rèn)值。 |
| WS_EX_LEFTSCROLLBAR | 將垂直滾動(dòng)條置于工作區(qū)的左側(cè)。 |
| WS_EX_LTRREADING | 使用從左到右的讀取順序?qū)傩燥@示窗口文本。 這是默認(rèn)值。 |
| WS_EX_MDICHILD | 創(chuàng)建 MDI 子窗口。 |
| WS_EX_NOPARENTNOTIFY | 指定使用此樣式創(chuàng)建的子窗口在創(chuàng)建或銷(xiāo)毀子窗口時(shí)不會(huì)向其父窗口發(fā)送 WM_PARENTNOTIFY 消息。 |
| WS_EX_OVERLAPPEDWINDOW | 組合 WS_EX_CLIENTEDGE 和 WS_EX_WINDOWEDGE 樣式 |
| WS_EX_PALETTEWINDOW | 組合 WS_EX_WINDOWEDGE 和 WS_EX_TOPMOST 樣式。 |
| WS_EX_RIGHT | 提供一個(gè)窗口通用的右對(duì)齊屬性。 這依賴(lài)于窗口類(lèi)。 |
| WS_EX_RIGHTSCROLLBAR | 向工作區(qū)右側(cè)) (,則放置一個(gè)垂直滾動(dòng)條。 這是默認(rèn)值。 |
| WS_EX_RTLREADING | 使用從右到左的讀取順序?qū)傩燥@示窗口文本。 |
| WS_EX_STATICEDGE | 創(chuàng)建一個(gè)窗口,該窗口具有用于不接受用戶(hù)輸入的項(xiàng)目的三維邊框樣式。 |
| WS_EX_TOOLWINDOW | 創(chuàng)建一個(gè)工具窗口,該窗口旨在用作浮動(dòng)工具欄。 工具窗口具有短于普通標(biāo)題欄的標(biāo)題欄和使用較小的字體繪制的窗口標(biāo)題。 工具窗口不會(huì)顯示在任務(wù)欄中,也不會(huì)顯示在用戶(hù)按 Alt+Tab 時(shí)出現(xiàn)的窗口中。 |
| WS_EX_TOPMOST | 指定使用此樣式創(chuàng)建的窗口應(yīng)放置在所有 nontopmost 窗口之上,并且即使在窗口被停用時(shí)也保持在其上方。 應(yīng)用程序可使用 SetWindowPos 成員函數(shù)添加或刪除此特性。 |
| WS_EX_TRANSPARENT | 指定使用此樣式創(chuàng)建的窗口是透明的。 也就是說(shuō),該窗口下的任何窗口都不能被窗口遮蓋。 使用此樣式創(chuàng)建的窗口僅在其下的所有同級(jí)窗口均已更新后接收 WM_PAINT 消息。 |
| WS_EX_WINDOWEDGE | 指定窗口具有具有凸起邊緣的邊框。 |
05. 附錄
5.1 MFC官方參考
網(wǎng)址:https://docs.microsoft.com/zh-cn/cpp/mfc/reference/mfc-classes?view=msvc-160
總結(jié)
以上是生活随笔為你收集整理的【MFC】Windows窗口样式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【MFC】CFrameWnd类详解
- 下一篇: 【MFC】显示系统时间的状态栏