【MFC】Windows窗口样式

C和C++ 专栏收录该内容
118 篇文章 10 订阅

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://docs.microsoft.com/zh-cn/cpp/mfc/reference/mfc-classes?view=msvc-160

  • 1
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值