【MFC】Windows窗口样式
发布日期:2021-06-29 20:50:20 浏览次数:2 分类:技术文章

本文共 5767 字,大约阅读时间需要 19 分钟。

00. 目录

文章目录

01. 框架窗口样式

框架窗口样式适用于 CFrameWnd 类 对象。 在 CFrameWnd::Create的 dwStyle 参数中指定样式组合。

Style 说明
FWS_ADDTOTITLE 指定要追加到框架窗口标题末尾的信息。 例如,“Microsoft Draw 绘图 in Document1”。 您可以指定在应用程序向导的文档模板字符串选项卡中显示的字符串。 如果需要关闭此选项,请重写 CWnd::PreCreateWindow 成员函数。
FWS_PREFIXTITLE 在框架窗口标题中显示应用程序名称之前的文档名称。 例如,“文档-写字板”。 您可以指定在应用程序向导的文档模板字符串选项卡中显示的字符串。 如果需要关闭此选项,请重写 CWnd::PreCreateWindow 成员函数。
FWS_SNAPTOBARS 控件在处于浮动窗口时(而不是停靠到框架窗口)时包围控件栏的框架窗口的大小。 此样式调整窗口的大小以适合控件条。

02. 静态样式

静态样式应用于 CStatic 类 对象。 在 CStatic::Create的 dwStyle 参数中指定样式组合。 有关 Windows 中的静态控件样式的详细信息,请参阅 (Windows) 的静态控件样式 。

Style 说明
SS_BITMAP 指定要在静态控件中显示的位图。 给定文本是位图的名称, (在资源文件中的其他位置定义) 文件名。 样式将忽略 nWidth 和 nHeight 参数;控件自动调整自身大小以容纳位图。
SS_BLACKFRAME 指定一个框,其中的帧使用与窗口框架相同的颜色绘制。 默认为黑色。
SS_BLACKRECT 指定用用于绘制窗口框架的颜色填充的矩形。 默认为黑色。
SS_CENTER 指定一个简单的矩形并在矩形中居中显示给定文本。 文本在显示前进行格式设置。 将扩展到行尾的单词会自动包装到下一个居中行的开头。
SS_CENTERIMAGE 指定如果位图或图标小于静态控件的工作区,则工作区的其余部分将用位图或图标左上角中的像素颜色填充。 如果静态控件包含单行文本,则文本在控件的工作区中垂直居中。
SS_ENDELLIPSIS 如果需要,或 SS_PATHELLIPSIS 将给定字符串的一部分替换为省略号,使结果适合指定的矩形。 可以指定 SS_END_ELLIPSIS 在字符串末尾替换字符,或 SS_PATHELLIPSIS 以替换字符串中间的字符。 如果字符串包含反斜杠 () 字符,SS_PATHELLIPSIS 将尽可能多地保留最后一个反斜杠后面的文本。
SS_ENHMETAFILE 指定要在静态控件中显示的增强型图元文件。 给定文本为图元文件的名称。 增强型图元文件静态控件具有固定大小;图元文件经过缩放以适合静态控件的工作区。
SS_ETCHEDFRAME 使用 EDGE_ETCHED 边缘样式绘制静态控件的帧。
SS_ETCHEDHORZ 使用 EDGE_ETCHED 边缘样式绘制静态控件的上边缘和下边缘。
SS_ETCHEDVERT 使用 EDGE_ETCHED 边缘样式绘制静态控件的左边缘和右边缘。
SS_GRAYFRAME 指定一个框,其中的帧使用与屏幕背景相同的颜色作为桌面) (桌面。 默认为灰色。
SS_GRAYRECT 指定用用于填充屏幕背景的颜色填充的矩形。 默认为灰色。
SS_ICON 指定对话框中显示的图标。 给定的文本是在资源文件中的其他位置) 定义的图标 (的名称。 忽略 nWidthnHeight 参数;图标自动调整其大小。
SS_LEFT 指定一个简单的矩形并在矩形中显示给定文本的左对齐。 文本在显示前进行格式设置。 将扩展到行尾的单词会自动换行到下一次刷新行的开头。
SS_LEFTNOWORDWRAP 指定一个简单的矩形并在矩形中显示给定文本的左对齐。 选项卡将展开,但不会换行。 延伸超出行尾的文本将被剪裁掉。
SS_NOPREFIX 除非指定了此样式,否则,Windows 将解释控件文本中的任何 “与” 符号 ( # A0) 字符作为快捷键前缀字符。 在这种情况下,将删除与号,并为字符串中的下一个字符加下划线。 如果静态控件要包含此功能不需要的文本,可以添加 SS_NOPREFIX。 此静态控件样式可以包含在任何定义的静态控件中。 可以使用按位 “或” 运算符将 SS_NOPREFIX 与其他样式组合在一起。 当需要在对话框中的静态控件中显示文件名或其他可能包含 “&” 符的字符串时,最常使用此项。
SS_NOTIFY 当用户单击或双击控件时,将向父窗口发送 STN_CLICKED、STN_DBLCLK、STN_DISABLE 和 STN_ENABLE 通知消息。
SS_OWNERDRAW 指定静态控件的所有者负责绘制控件。 每当需要绘制控件时,所有者窗口都会收到 WM_DRAWITEM 消息。
SS_REALSIZEIMAGE 禁止静态图标或位图控件 (即,具有 SS_ICON 或 SS_BITMAP 样式) 的静态控件在加载或绘制时将调整其大小。 如果图标或位图大于目标区域,则会剪切图像。
SS_RIGHT 指定一个简单的矩形并在矩形中显示给定的文本右对齐。 文本在显示前进行格式设置。 将扩展到行尾的单词会自动换行到下一个右行的开头。
SS_RIGHTJUST 指定在调整控件大小时,具有 SS_BITMAP 或 SS_ICON 样式的静态控件右下角保持固定。 只有顶部和左侧会调整为容纳新的位图或图标。
SS_SIMPLE 指定一个简单的矩形,并在矩形中显示一行文本。 文本行不能以任何方式进行缩短或更改。 (控件的父窗口或对话框不得处理 WM_CTLCOLOR 消息。 )
SS_SUNKEN 在静态控件周围绘制半凹陷边框。
SS_USERITEM 指定用户定义的项。
SS_WHITEFRAME 指定一个框,其中的框架使用与窗口背景相同的颜色绘制。 默认值为白色。
SS_WHITERECT 指定用填充窗口背景的颜色填充的矩形。 默认值为白色。
SS_WORDELLIPSIS 截断不适合的文本并添加省略号。

03. 窗口样式

窗口样式适用于 CWnd 类 对象。 在 CWnd::Create或 Cwnd::CreateEx的 dwStyle 参数中指定样式组合。 有关 Windows 中窗口样式的详细信息,请参阅 windows) (窗口样式 。

Style 说明
WS_BORDER 创建一个具有边框的窗口。
WS_CAPTION 创建一个具有标题栏 (隐含 WS_BORDER 样式) 的窗口。 不能与 WS_DLGFRAME 样式一起使用。
WS_CHILD 创建子窗口。 不能与 WS_POPUP 样式一起使用。
WS_CHILDWINDOW 与 WS_CHILD 样式相同。
WS_CLIPCHILDREN 在父窗口中绘制时,将排除子窗口占用的区域。 在创建父窗口时使用。
WS_CLIPSIBLINGS 相对于彼此的位置剪辑子窗口;也就是说,当某个特定的子窗口收到绘制消息时,WS_CLIPSIBLINGS 样式会剪辑子窗口中所有其他重叠的子窗口,以进行更新。 (如果未给定 WS_CLIPSIBLINGS 并且子窗口重叠,则在子窗口的工作区中进行绘制时,可以在相邻子窗口的工作区中进行绘制。仅 ) 用于 WS_CHILD 样式。
WS_DISABLED 创建初始禁用的窗口。
WS_DLGFRAME 创建具有双边框但无标题的窗口。
WS_GROUP 指定控件组中的第一个控件,用户可以使用箭头键从一个控件移动到下一个控件。 在第一个控件属于同一组后,所有用 WS_GROUP 样式为 FALSE 的控件均为 FALSE。 具有 WS_GROUP 样式的下一个控件将启动下一个组 (即,一个组在下一步开始) 的位置结束。
WS_HSCROLL 创建一个具有水平滚动条的窗口。
WS_ICONIC 创建最初最小化的窗口。 与 WS_MINIMIZE 样式相同。
WS_MAXIMIZE 创建最大大小的窗口。
WS_MAXIMIZEBOX 创建一个具有 “最大化” 按钮的窗口。
WS_MINIMIZE 创建最初最小化的窗口。 仅用于 WS_OVERLAPPED 样式。
WS_MINIMIZEBOX 创建一个具有 “最小化” 按钮的窗口。
WS_OVERLAPPED 创建重叠的窗口。 重叠窗口通常具有标题和边框。
WS_OVERLAPPEDWINDOW 创建具有 WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX 和 WS_MAXIMIZEBOX 样式的重叠窗口。
WS_POPUP 创建一个弹出窗口。 不能与 WS_CHILD 样式一起使用。
WS_POPUPWINDOW 用 WS_BORDER、WS_POPUP 和 WS_SYSMENU 样式创建弹出窗口。 WS_CAPTION 样式必须与 WS_POPUPWINDOW 样式组合以使控件菜单可见。
WS_SIZEBOX 创建一个具有调整边框的窗口。 与 WS_THICKFRAME 样式相同。
WS_SYSMENU 创建一个窗口,该窗口在其标题栏中具有一个控件菜单框。 仅用于带有标题栏的 windows。
WS_TABSTOP 指定任意数量的控件,用户可以使用 TAB 键移动这些控件。 TAB 键将用户移动到 WS_TABSTOP 样式指定的下一个控件。
WS_THICKFRAME 创建一个窗口,该窗口具有可用于调整窗口大小的粗框架。
WS_TILED 创建重叠的窗口。 重叠窗口具有标题栏和边框。 与 WS_OVERLAPPED 样式相同。
WS_TILEDWINDOW 创建具有 WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX 和 WS_MAXIMIZEBOX 样式的重叠窗口。 与 WS_OVERLAPPEDWINDOW 样式相同。
WS_VISIBLE 创建初始可见的窗口。
WS_VSCROLL 创建一个具有垂直滚动条的窗口。

04. 扩展的窗口样式

扩展的窗口样式适用于 CWnd 类 对象。 指定 CWnd:: CreateEx的 dwExStyle 参数中样式的组合。 有关 Windows 中的扩展窗口样式的详细信息,请参阅 windows) (扩展窗口样式 。

Style 说明
WS_EX_ACCEPTFILES 指定使用此样式创建的窗口接受拖放文件。
WS_EX_APPWINDOW 当窗口可见时,强制将顶级窗口拖到任务栏上。
WS_EX_CLIENTEDGE 指定窗口具有三维外观,即具有凹陷边缘的边框。
WS_EX_CONTEXTHELP 在窗口的标题栏中包含一个问号。 当用户单击问号时,光标将更改为带有指针的问号。 这时,如果用户单击子窗口,子窗口将收到 WM_HELP 消息。
WS_EX_CONTROLPARENT 允许用户使用 TAB 键在窗口的子窗口之间导航。
WS_EX_DLGMODALFRAME 指定一个具有双边框的窗口,当您在 dwStyle 参数中指定 WS_CAPTION 样式标志时,可以选择使用标题栏 ((可选)) 。
WS_EX_LAYERED 窗口是 。 如果窗口的 为 CS_OWNDC 或 CS_CLASSDC,则不能使用此样式。 但是,Microsoft Windows 8 支持子窗口的 WS_EX_LAYERED 样式,在此窗口中,以前的 Windows 版本仅支持顶级窗口。
WS_EX_LEFT 提供窗口一般左对齐属性。 这是默认值。
WS_EX_LEFTSCROLLBAR 将垂直滚动条置于工作区的左侧。
WS_EX_LTRREADING 使用从左到右的读取顺序属性显示窗口文本。 这是默认值。
WS_EX_MDICHILD 创建 MDI 子窗口。
WS_EX_NOPARENTNOTIFY 指定使用此样式创建的子窗口在创建或销毁子窗口时不会向其父窗口发送 WM_PARENTNOTIFY 消息。
WS_EX_OVERLAPPEDWINDOW 组合 WS_EX_CLIENTEDGE 和 WS_EX_WINDOWEDGE 样式
WS_EX_PALETTEWINDOW 组合 WS_EX_WINDOWEDGE 和 WS_EX_TOPMOST 样式。
WS_EX_RIGHT 提供一个窗口通用的右对齐属性。 这依赖于窗口类。
WS_EX_RIGHTSCROLLBAR 向工作区右侧) (,则放置一个垂直滚动条。 这是默认值。
WS_EX_RTLREADING 使用从右到左的读取顺序属性显示窗口文本。
WS_EX_STATICEDGE 创建一个窗口,该窗口具有用于不接受用户输入的项目的三维边框样式。
WS_EX_TOOLWINDOW 创建一个工具窗口,该窗口旨在用作浮动工具栏。 工具窗口具有短于普通标题栏的标题栏和使用较小的字体绘制的窗口标题。 工具窗口不会显示在任务栏中,也不会显示在用户按 Alt+Tab 时出现的窗口中。
WS_EX_TOPMOST 指定使用此样式创建的窗口应放置在所有 nontopmost 窗口之上,并且即使在窗口被停用时也保持在其上方。 应用程序可使用 SetWindowPos 成员函数添加或删除此特性。
WS_EX_TRANSPARENT 指定使用此样式创建的窗口是透明的。 也就是说,该窗口下的任何窗口都不能被窗口遮盖。 使用此样式创建的窗口仅在其下的所有同级窗口均已更新后接收 WM_PAINT 消息。
WS_EX_WINDOWEDGE 指定窗口具有具有凸起边缘的边框。

05. 附录

5.1 MFC官方参考

网址:

转载地址:https://dengjin.blog.csdn.net/article/details/113414395 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【MFC】利用MFC向导生成单文档应用程序框架
下一篇:【MFC】CFrameWnd类详解

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月28日 05时05分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章