MFC 使用的样式

创建相应的 MFC 对象时,使用以下样式标志来指定窗口或控件的外观和行为。 在大多数情况下,这些样式是在类 Create 函数的 dwStyle 参数中设置的。

按钮样式

按钮样式适用于 CButton Class 对象,例如单选按钮、复选框和按钮。 在 CButton::CreatedwStyle 参数中指定样式组合。 有关 Windows 中按钮样式的详细信息,请参阅按钮样式 (Windows)

按钮类型

下表列出了按钮类型。 可以选择以下选项之一。 如果不指定按钮类型,则默认值为 BS_PUSHBUTTON

类型 描述
BS_3STATE 创建具有三种状态的复选框按钮:BST_CHECKEDBST_INDETERMINATEBST_UNCHECKED。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,但不会更改按钮的状态。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXTBS_RIGHTBUTTON 样式。
BS_AUTO3STATE 创建具有三种状态的复选框按钮:BST_CHECKEDBST_INDETERMINATEBST_UNCHECKED。 单击按钮会向所有者窗口发送 BN_CLICKED 通知并更改按钮的状态。 按钮状态按照 BST_CHECKEDBST_INDETERMINATEBST_UNCHECKED 顺序循环。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXTBS_RIGHTBUTTON 样式。
BS_AUTOCHECKBOX 创建具有两种状态的复选框按钮:BST_CHECKEDBST_UNCHECKED。 单击按钮会向所有者窗口发送 BN_CLICKED 通知并更改按钮的状态。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXTBS_RIGHTBUTTON 样式。
BS_AUTORADIOBUTTON 创建具有两种状态的单选按钮:BST_CHECKEDBST_UNCHECKED。 单选按钮通常以组的形式使用,每一组中每次最多有一个选项处于选中状态。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,将单击的单选按钮的状态设置为 BST_CHECKED,并将按钮组中所有其他单选按钮的状态设置为 BST_UNCHECKED。 默认情况下,关联的文本显示在单选按钮的右侧。 若要在单选按钮左侧显示文本,请使用 BS_LEFTTEXTBS_RIGHTBUTTON 样式。
BS_CHECKBOX 创建具有两种状态的复选框按钮:BST_CHECKEDBST_UNCHECKED。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,但不会更改按钮的状态。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXTBS_RIGHTBUTTON 样式。
BS_COMMANDLINK 创建命令链接按钮。 命令链接按钮是特定于 Windows Vista 的命令按钮,它在主文本左侧显示一个绿色箭头,在主文本下方显示一条注释。 可以使用 CButton::SetNote 设置注释文本。
BS_DEFCOMMANDLINK 创建命令链接按钮。 命令链接按钮是特定于 Windows Vista 的命令按钮,它在主文本左侧显示一个绿色箭头,在主文本下方显示一条注释。 可以使用 CButton::SetNote 设置注释文本。 如果按钮在对话框中,则即使该按钮没有输入焦点,按 ENTER 键也会向对话框发送 BN_CLICKED 通知。
BS_DEFPUSHBUTTON 创建一个带有黑色边框的命令按钮。 如果按钮在对话框中,则即使该按钮没有输入焦点,按 ENTER 键也会向对话框发送 BN_CLICKED 通知。
BS_DEFSPLITBUTTON 创建拆分按钮。 拆分按钮是特定于 Windows Vista 的命令按钮,其中包含一个与下拉箭头邻接的按钮。 单击该按钮时,会执行默认命令。 单击下拉箭头时,会显示一个包含附加命令的菜单。 如果拆分按钮在对话框中,则即使该按钮没有输入焦点,按 ENTER 键也会向对话框发送 BN_CLICKED 通知
BS_GROUPBOX 创建一个矩形,可在其中将其他按钮分组。 与此样式关联的文本显示在矩形的左上角。
BS_OWNERDRAW 创建所有者绘制的按钮。 当按钮的视觉方面发生更改时,框架会调用 DrawItem 方法。 使用 CBitmapButton 类时必须设置此样式。
BS_PUSHBUTTON 创建一个命令按钮,当用户单击该按钮时向所有者窗口发送 BN_CLICKED 通知。
BS_RADIOBUTTON 创建具有两种状态的单选按钮:BST_CHECKEDBST_UNCHECKED。 单选按钮通常以组的形式使用,每一组中每次最多有一个选项处于选中状态。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,但不会自动更改组中任何按钮的状态。 默认情况下,关联的文本显示在单选按钮的右侧。 若要在单选按钮左侧显示文本,请使用 BS_LEFTTEXTBS_RIGHTBUTTON 样式。
BS_SPLITBUTTON 创建拆分按钮。 拆分按钮是特定于 Windows Vista 的命令按钮,其中包含一个与下拉箭头邻接的按钮。 单击该按钮时,会执行默认命令。 单击下拉箭头时,会显示一个包含附加命令的菜单。
BS_USERBUTTON 已过时,提供此项是为了与 16 位版本的 Windows 保持兼容。 基于 Win32 的应用程序应改用 BS_OWNERDRAW

单选按钮和复选框样式

下表列出了特定于单选按钮和复选框的样式。 这些样式在所有其他按钮类型中将被忽略。 可以选择以下一项或多项。

Style 说明
BS_LEFTTEXT 与单选按钮或复选框样式结合使用时,文本将显示在单选按钮或复选框的左侧。
BS_RIGHTBUTTON 与单选按钮或复选框样式结合使用时,文本将显示在单选按钮或复选框的左侧。 此样式与 BS_LEFTTEXT 样式相同。
BS_PUSHLIKE 使复选框或单选按钮的外观和行为类似于命令按钮。 该按钮处于 BST_CHECKED 状态时将显示为已按下,处于 BST_INDETERMINATE 状态时将显示为已按下并灰显,处于 BST_UNCHECKED 状态为时将显示为已释放。

按钮文本对齐样式

下表列出了水平和垂直文本对齐选项。 可以选择以下选项之一。

Style 说明
BS_LEFT 将按钮矩形中的文本左对齐。 但是,如果按钮是没有 BS_RIGHTBUTTON 样式的复选框或单选按钮,则文本将在复选框或单选按钮的右侧左对齐。
BS_RIGHT 将按钮矩形中的文本右对齐。 但是,如果按钮是没有 BS_RIGHTBUTTON 样式的复选框或单选按钮,则文本将在复选框或单选按钮的右侧右对齐。
BS_CENTER 将按钮矩形中的文本水平居中。
BS_TOP 将文本放置在按钮矩形的顶部。
BS_BOTTOM 将文本放置在按钮矩形的底部。
BS_VCENTER 将按钮矩形中的文本垂直居中。

按钮内容选项

下表列出了指示按钮中显示内容的选项。 仅显示文本的按钮类型会忽略这些样式。 可以选择以下选项之一。

Style 说明
BS_BITMAP 指定按钮显示位图。
BS_ICON 指定按钮显示图标。
BS_TEXT 指定按钮显示文本。

其他按钮选项

下表列出了可用于任何按钮类型的其他选项。 可以选择以下一项或多项。

Style 说明
BS_FLAT 指定按钮是二维的,并且不使用默认底纹绘制以创建三维图像。
BS_MULTILINE 如果文本字符串太长,因而无法在按钮矩形中单行显示,则分多行显示按钮文本。
BS_NOTIFY 使按钮能够将 BN_DBLCLKBN_KILLFOCUSBN_SETFOCUS 通知消息发送到其父窗口。 请注意,无论是否指定此样式,按钮都会发送 BN_CLICKED 通知。

组合框样式

以下组合框样式在 MFC 中可用。 有关 Windows 中的组合框样式的详细信息,请参阅组合框样式 (Windows)

Style 说明
CBS_AUTOHSCROLL 当用户在行尾键入字符时,使编辑控件中的文本自动滚动到右侧。 如果未设置此样式,则仅允许矩形边界内的文本。
CBS_DISABLENOSCROLL 当列表框未包含足够的项而不需要滚动时,将显示一个禁用的垂直滚动条。 如果不使用此样式,则当列表框未包含足够的项时,将会隐藏滚动条。
CBS_DROPDOWN 类似于 CBS_SIMPLE,只不过只有当用户选择编辑控件旁的图标时,才会显示该列表框。
CBS_DROPDOWNLIST 类似于 CBS_DROPDOWN,只不过编辑控件被替换为一个在列表框中显示当前选择的静态文本项。
CBS_HASSTRINGS 所有者绘制的组合框包含由字符串组成的项。 组合框维护字符串的内存和指针,以便应用程序可使用 GetText 成员函数检索特定项的文本。
CBS_LOWERCASE 将选择字段和列表中的所有文本转换为小写。
CBS_NOINTEGRALHEIGHT 指定组合框的大小正是应用程序创建此组合框时指定的大小。 通常,Windows 会调整组合框的大小,以使组合框不会仅显示部分项。
CBS_OEMCONVERT 在组合框编辑控件中输入的文本将从 ANSI 字符集转换为 OEM 字符集,然后重新转换为 ANSI。 这可确保当应用程序调用 AnsiToOem Windows 函数将组合框中的 ANSI 字符串转换为 OEM 字符时,能正确进行字符转换。 此样式最适用于包含文件名的组合框,且仅适用于使用 CBS_SIMPLECBS_DROPDOWN 样式创建的组合框。
CBS_OWNERDRAWFIXED 列表框的所有者负责绘制其内容;列表框中的项的高度全都相同。
CBS_OWNERDRAWVARIABLE 列表框的所有者负责绘制其内容;列表框中的项的高度不同。
CBS_SIMPLE 始终显示列表框。 列表框中的当前选择显示在编辑控件中。
CBS_SORT 对输入到列表框的字符串进行自动排序。
CBS_UPPERCASE 将选择字段和列表中的所有文本转换为大写。

编辑样式

编辑样式适用于 CEdit对象。 在 CEdit::CreatedwStyle 参数中指定样式组合。 有关在 Windows 中编辑控件样式的详细信息,请参阅编辑控件样式 (Windows)

Style 说明
ES_AUTOHSCROLL 当用户在行尾键入一个字符时,自动将文本向右滚动 10 个字符。 当用户按下 ENTER 键时,控件会将所有文本向后滚动到位置 0。
ES_AUTOVSCROLL 当用户在最后一行按 ENTER 时,自动将文本向上滚动一页。
ES_CENTER 将单行或多行编辑控件中的文本居中。
ES_LEFT 将单行或多行编辑控件中的文本左对齐。
ES_LOWERCASE 在编辑控件中键入字符时,将所有字符转换为小写。
ES_MULTILINE 指定多行编辑控件。 (默认设置为单行。)如果指定了 ES_AUTOVSCROLL 样式,则编辑控件会显示尽可能多的行,并在用户按 ENTER 键时垂直滚动。 如果未指定 ES_AUTOVSCROLL,则编辑控件会显示尽可能多的行;如果在无法显示更多行时按 ENTER,则发出哔声。 如果指定了 ES_AUTOHSCROLL 样式,则当脱字号越过控件的右边缘时,多行编辑控件将自动水平滚动。 若要另起新行,用户必须按 ENTER。 如果未指定 ES_AUTOHSCROLL,则控件会在必要时自动将单词换行到下一行的开头;如果按 ENTER,也会另起新行。 自动换行的位置由窗口大小决定。 如果窗口大小发生变化,自动换行位置也会发生变化并重新显示文本。 多行编辑控件可以包含滚动条。 包含滚动条的编辑控件处理其自身的滚动条消息。 没有滚动条的编辑控件按如上所述的方式滚动,并处理父窗口发送的任何滚动消息。
ES_NOHIDESEL 通常,编辑控件会在控件失去输入焦点时隐藏选择,并在控件收到输入焦点时反转选择。 指定 ES_NOHIDESEL 会删除此默认操作。
ES_NUMBER 只允许将数字输入到编辑控件中。
ES_OEMCONVERT 在编辑控件中输入的文本将从 ANSI 字符集转换为 OEM 字符集,然后重新转换为 ANSI。 这可确保当应用程序调用 AnsiToOem Windows 函数将编辑控件中的 ANSI 字符串转换为 OEM 字符时,能正确进行字符转换。 此样式对于包含文件名的编辑控件最有用。
ES_PASSWORD 将键入到编辑控件中的所有字符显示为星号 (*)。 应用程序可以使用 SetPasswordChar 成员函数来更改显示的字符。
ES_READONLY 防止用户在编辑控件中输入或编辑文本。
ES_RIGHT 将单行或多行编辑控件中的文本右对齐。
ES_UPPERCASE 在编辑控件中键入字符时,将所有字符转换为大写。
ES_WANTRETURN 指定当用户在对话框的多行编辑控件中输入文本并按 ENTER 键后插入一个回车符。 如果没有此样式,则按 ENTER 键的效果与按下对话框的默认按钮相同。 此样式对单行编辑控件不起作用。

框架窗口样式

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

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

列表框样式

列表框样式适用于 CListBox对象。 在 CListBox::CreatedwStyle 参数中指定样式组合。 有关 Windows 中的列表框样式的详细信息,请参阅列表框样式 (Windows)

Style 说明
LBS_DISABLENOSCROLL 当列表框未包含足够的项而不需要滚动时,将显示一个禁用的垂直滚动条。 如果不使用此样式,则当列表框未包含足够的项时,将会隐藏滚动条。
LBS_EXTENDEDSEL 用户可以使用 SHIFT 键和鼠标或特定组合键选择多个项。
LBS_HASSTRINGS 指定一个所有者描述的列表框,其中包含由字符串构成的项。 列表框保留字符串的内存和指针,以便应用程序可使用 GetText 成员函数检索特定项的文本。
LBS_MULTICOLUMN 指定水平滚动的多列列表框。 SetColumnWidth 成员函数将设置列的宽度。
LBS_MULTIPLESEL 用户每次单击或双击字符串时,都将切换字符串选择。 可以选择任意数量的字符串。
LBS_NODATA 指定无数据列表框。 当列表框中的项数超出一千时,请指定此样式。 无数据列表框也必须有 LBS_OWNERDRAWFIXED 样式,但不能有 LBS_SORTLBS_HASSTRINGS 样式。

无数据列表框类似于所有者描述的列表框,但它不包含项的字符串或位图数据。 用于添加、插入或删除项的命令始终会忽略任何给定的项数据;在列表框内查找字符串的请求始终会失败。 必须绘制某个项时,系统会向所有者窗口发送 WM_DRAWITEM 消息。 随 WM_DRAWITEM 消息传递的 DRAWITEMSTRUCT 结构的 itemID 成员将指定要绘制的项的行号。 无数据列表框不发送 WM_DELETEITEM 消息。
LBS_NOINTEGRALHEIGHT 列表框的大小正是应用程序创建此列表框时指定的大小。 通常,Windows 会调整列表框的大小,以使列表框不会只显示部分项。
LBS_NOREDRAW 在进行更改时,不会更新列表框显示。 可通过发送 WM_SETREDRAW 消息随时更改此样式。
LBS_NOSEL 指定列表框包含可查看但不无法选择的项。
LBS_NOTIFY 每当用户单击或双击某个字符串时,父窗口都会接收到输入消息。
LBS_OWNERDRAWFIXED 列表框的所有者负责绘制其内容;列表框中的项的高度相同。
LBS_OWNERDRAWVARIABLE 列表框的所有者负责绘制其内容;列表框中的项的高度不同。
LBS_SORT 列表框中的字符串按字母顺序排序。
LBS_STANDARD 列表框中的字符串按字母顺序排序,且每当用户单击或双击某个字符串时,父窗口都会接收到输入消息。 列表框包含各边的边框。
LBS_USETABSTOPS 允许列表框在绘制其字符串时识别并展开制表符。 默认制表符位置是 32 个对话框单位。 (对话框单位是一个水平或垂直的距离。一个水平对话框单位等于当前对话框基本宽度单位的四分之一。对话框基本单位根据当前系统字体的高度和宽度计算。GetDialogBaseUnits Windows 函数以像素为单位返回当前对话框基本单位。)此样式不应与 LBS_OWNERDRAWFIXED 一起使用。
LBS_WANTKEYBOARDINPUT 当列表框具有输入焦点时,只要用户按键,列表框的所有者就会接收 WM_VKEYTOITEMWM_CHARTOITEM 消息。 这允许应用程序对键盘输入执行特殊处理。

消息框样式

消息框样式适用于 AfxMessageBox 项。 在 AfxMessageBoxnType 参数中指定样式组合。 有关 Windows 中消息框样式的详细信息,请参阅 MessageBox函数 (Windows)

可以使用以下消息框样式。

消息框类型

Style 说明
MB_ABORTRETRYIGNORE 消息框包含三个按钮:“中止”、“重试”和“忽略”。
MB_OK 消息框包含一个按钮:“确定”。
MB_OKCANCEL 消息框包含两个按钮:“确定”和“取消”。
MB_RETRYCANCEL 消息框包含两个按钮:“重试”和“取消”。
MB_YESNO 消息框包含两个按钮:“是”和“否”。
MB_YESNOCANCEL 消息框包含三个按钮:“是”、“否”和“取消”。

消息框模态

Style 说明
MB_APPLMODAL 用户必须先响应消息框,然后才能在当前窗口中继续操作。 但是,用户可以转到其他应用程序的窗口并在这些窗口中操作。 如果既未指定 MB_SYSTEMMODAL,也未指定 MB_TASKMODAL,那么默认值为 MB_APPLMODAL
MB_SYSTEMMODAL 在用户响应消息框之前,所有应用程序都将暂停。 系统模态消息框用于通知用户需要立即注意的严重、具有潜在损害性的错误,应谨慎使用。
MB_TASKMODAL 类似于 MB_APPLMODAL,但在 Microsoft Foundation 类应用程序中没有作用。 此标志是为没有可用窗口句柄的调用方应用程序或库保留的。

消息框图标

Style 说明
MB_ICONEXCLAMATION 消息框中会显示一个感叹号图标。
MB_ICONINFORMATION 消息框中会显示一个包含在圆圈中的“I”图标。
MB_ICONQUESTION 消息框中会显示一个问号图标。
MB_ICONSTOP 消息框中会显示一个停止符号图标。

消息框默认按钮

Style 说明
MB_DEFBUTTON1 第一个按钮是默认按钮。 请注意,除非指定 MB_DEFBUTTON2MB_DEFBUTTON3,否则第一个按钮始终是默认按钮。
MB_DEFBUTTON2 第二个按钮是默认按钮。
MB_DEFBUTTON3 第三个按钮是默认按钮。

滚动条样式

滚动条样式适用于 CScrollBar对象。 在 CScrollBar::CreatedwStyle 参数中指定样式组合。 有关 Windows 中的滚动条控件样式的详细信息,请参阅滚动条控件样式 (Windows)

Style 说明
SBS_BOTTOMALIGN SBS_HORZ 样式一起使用。 滚动条的下边缘与 Create 成员函数中指定的矩形下边缘对齐。 该滚动条使用系统滚动条的默认高度。
SBS_HORZ 指定水平滚动条。 如果既未指定 SBS_BOTTOMALIGN 样式,也未指定 SBS_TOPALIGN 样式,则该滚动条使用 Create 成员函数中指定的高度、宽度和位置。
SBS_LEFTALIGN SBS_VERT 样式一起使用。 滚动条的左边缘与 Create 成员函数中指定的矩形左边缘对齐。 该滚动条使用系统滚动条的默认宽度。
SBS_RIGHTALIGN SBS_VERT 样式一起使用。 滚动条的右边缘与 Create 成员函数中指定的矩形右边缘对齐。 该滚动条使用系统滚动条的默认宽度。
SBS_SIZEBOX 指定大小框。 如果既未指定 SBS_SIZEBOXBOTTOMRIGHTALIGN 样式,也未指定 SBS_SIZEBOXTOPLEFTALIGN 样式,则大小框使用 Create 成员函数中指定的高度、宽度和位置。
SBS_SIZEBOXBOTTOMRIGHTALIGN SBS_SIZEBOX 样式一起使用。 大小框的右下角与 Create 成员函数中指定的矩形右下角对齐。 该大小框使用系统大小框的默认大小。
SBS_SIZEBOXTOPLEFTALIGN SBS_SIZEBOX 样式一起使用。 大小框的左上角与 Create 成员函数中指定的矩形左上角对齐。 该大小框使用系统大小框的默认大小。
SBS_SIZEGRIP SBS_SIZEBOX 相同,但有一个凸起的边缘。
SBS_TOPALIGN SBS_HORZ 样式一起使用。 滚动条的上边缘与 Create 成员函数中指定的矩形上边缘对齐。 该滚动条使用系统滚动条的默认高度。
SBS_VERT 指定垂直滚动条。 如果既未指定 SBS_RIGHTALIGN 样式,也未指定 SBS_LEFTALIGN 样式,则该滚动条使用 Create 成员函数中指定的高度、宽度和位置。

静态样式

静态样式适用于 CStatic对象。 在 CStatic::CreatedwStyle 参数中指定样式组合。 有关在 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 会将控件文本中的任何与号 (&) 字符解释为加速器前缀字符。 在这种情况下,将删除 & 字符,并为字符串中的下一个字符添加下划线。 如果在不需要此功能的情况下要在静态控件中包含文本,可以添加 SS_NOPREFIX。 可为任何已定义的静态控件包含此静态控件样式。 可以使用按位 OR 运算符将 SS_NOPREFIX 与其他样式相结合。 需要在对话框的静态控件中显示文件名或其他可包含 & 字符的字符串时,往往会使用这种方法。
SS_NOTIFY 当用户单击或双击控件时发送父窗口 STN_CLICKEDSTN_DBLCLKSTN_DISABLESTN_ENABLE 通知消息。
SS_OWNERDRAW 指定静态控件的所有者负责绘制控件。 每当需要绘制控件时,所有者窗口都会收到 WM_DRAWITEM 消息。
SS_REALSIZEIMAGE 防止静态图标或位图控件(即具有 SS_ICONSS_BITMAP 样式的静态控件)在加载或绘制时调整其大小。 如果图标或位图大于目标区域,则会剪裁图像。
SS_RIGHT 指定一个简单矩形并在矩形中右对齐显示给定的文本。 在显示文本之前先设置其格式。 超出行尾的字词会自动换行到下一个右对齐行的开头。
SS_RIGHTJUST 指定具有 SS_BITMAP 或 SS_ICON 样式的静态控件的右下角在调整控件大小时保持固定。 只会调整上侧和左侧以适应新的位图或图标。
SS_SIMPLE 指定一个简单矩形并在矩形中左对齐显示一行文本。 文本行不能以任何方式缩短或更改。 (控件的父窗口或对话框不得处理 WM_CTLCOLOR 消息。)
SS_SUNKEN 在静态控件周围绘制半凹陷边框。
SS_USERITEM 指定用户定义的项。
SS_WHITEFRAME 指定一个框,为该框绘制的框架的颜色与窗口背景色相同。 默认值为白色。
SS_WHITERECT 指定一个矩形,其中填充了用于填充窗口背景的颜色。 默认值为白色。
SS_WORDELLIPSIS 截掉无法装入的文本并添加省略号。

窗口样式

窗口样式适用于 CWnd对象。 在 CWnd::CreateCWnd::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 定义的所有控件属于同一组。 具有 WS_GROUP 样式的下一个控件开始形成下一个组(即,一个组结束,下一个组随之开始)。
WS_HSCROLL 创建一个带水平滚动条的窗口。
WS_ICONIC 创建一个最初已最小化的窗口。 与 WS_MINIMIZE 样式相同。
WS_MAXIMIZE 创建一个最大大小的窗口。
WS_MAXIMIZEBOX 创建一个带有“最大化”按钮的窗口。
WS_MINIMIZE 创建一个最初已最小化的窗口。 只能与 WS_OVERLAPPED 样式一起使用。
WS_MINIMIZEBOX 创建一个带有“最小化”按钮的窗口。
WS_OVERLAPPED 创建一个重叠的窗口。 重叠的窗口通常带有标题栏和边框。
WS_OVERLAPPEDWINDOW 创建具有 WS_OVERLAPPEDWS_CAPTIONWS_SYSMENUWS_THICKFRAMEWS_MINIMIZEBOXWS_MAXIMIZEBOX 样式的重叠窗口。
WS_POPUP 创建一个弹出窗口。 不能与 WS_CHILD 样式一起使用。
WS_POPUPWINDOW 创建一个具有 WS_BORDERWS_POPUPWS_SYSMENU 样式的弹出窗口。 WS_CAPTION 样式必须与 WS_POPUPWINDOW 样式结合使用才能使控件菜单可见。
WS_SIZEBOX 创建一个带有大小调整边框的窗口。 与 WS_THICKFRAME 样式相同。
WS_SYSMENU 创建一个标题栏包含控件菜单框的窗口。 仅用于带标题栏的窗口。
WS_TABSTOP 指定任意数量的控件之一,用户可以使用 TAB 键在其中移动。 TAB 键将用户移动到由 WS_TABSTOP 样式指定的下一个控件。
WS_THICKFRAME 创建一个带有厚框架的窗口,该框架可用于调整窗口大小。
WS_TILED 创建一个重叠的窗口。 重叠的窗口带有标题栏和边框。 与 WS_OVERLAPPED 样式相同。
WS_TILEDWINDOW 创建具有 WS_OVERLAPPEDWS_CAPTIONWS_SYSMENUWS_THICKFRAMEWS_MINIMIZEBOXWS_MAXIMIZEBOX 样式的重叠窗口。 与 WS_OVERLAPPEDWINDOW 样式相同。
WS_VISIBLE 创建初始可见的窗口。
WS_VSCROLL 创建一个带垂直滚动条的窗口。

扩展的窗口样式

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

Style 说明
WS_EX_ACCEPTFILES 指定使用此样式创建的窗口接收拖放文件。
WS_EX_APPWINDOW 在顶级窗口可见时强行将其放在任务栏上。
WS_EX_CLIENTEDGE 指定窗口具有 3D 外观,即带凹陷边缘的边框。
WS_EX_CONTEXTHELP 在窗口的标题栏中包含一个问号。 当用户单击该问号时,光标将变成带指针的问号。 这时,如果用户单击子窗口,子窗口将收到 WM_HELP 消息。
WS_EX_CONTROLPARENT 支持用户使用 TAB 键在窗口的子窗口之间导航。
WS_EX_DLGMODALFRAME 指定一个带双边框的窗口,在 dwStyle 参数中指定 WS_CAPTION 样式标志时,(可选)可以创建带标题栏的窗口。
WS_EX_LAYERED 该窗口是一个分层窗口。 如果窗口具有 CS_OWNDCCS_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_CLIENTEDGEWS_EX_WINDOWEDGE 样式结合使用
WS_EX_PALETTEWINDOW WS_EX_WINDOWEDGEWS_EX_TOPMOST 样式结合使用。
WS_EX_RIGHT 为窗口提供一般的右对齐属性。 这依赖于窗口类。
WS_EX_RIGHTSCROLLBAR 将垂直滚动条(如果有)放在客户端区域的右侧。 这是默认情况。
WS_EX_RTLREADING 使用从右到左读取顺序属性显示窗口文本。
WS_EX_STATICEDGE 使用应该用于不接受用户输入的项的三维边框样式创建窗口。
WS_EX_TOOLWINDOW 创建一个工具窗口,该窗口应该用作浮动工具栏。 工具窗口具有短于普通标题栏的标题栏和使用较小的字体绘制的窗口标题。 工具窗口不会显示在任务栏中,也不会显示在用户按 Alt+Tab 时出现的窗口中。
WS_EX_TOPMOST 指定使用此样式创建的窗口应该放在所有非最上层窗口之上,即使该窗口停用后也是如此。 应用程序可使用 SetWindowPos 成员函数添加或删除此特性。
WS_EX_TRANSPARENT 指定使用此样式创建的窗口是透明的。 也就是说,该窗口下的任何窗口都不能被窗口遮盖。 使用此样式创建的窗口仅在以下情况下才接收 WM_PAINT 消息:该窗口下面的所有同级窗口都已更新。
WS_EX_WINDOWEDGE 指定窗口具有带凸起边缘的边框。

另请参阅

MFC 类概述
CWnd::Create
CWnd::CreateEx
CEdit::Create
CScrollBar::Create
CStatic::Create
AfxMessageBox
CreateWindow
CreateWindowEx
按钮样式 (Windows)
组合框样式 (Windows)
编辑控件样式 (Windows)
列表框样式 (Windows)
MessageBox 函数 (Windows)
滚动条控件样式 (Windows)
静态控件样式 (Windows)
Window 样式 (Windows)
扩展的窗口样式 (Windows)