MFC 使用的样式
创建相应的 MFC 对象时,使用以下样式标志来指定窗口或控件的外观和行为。 在大多数情况下,这些样式是在类 Create
函数的 dwStyle
参数中设置的。
按钮样式
按钮样式适用于 CButton Class
对象,例如单选按钮、复选框和按钮。 在 CButton::Create
的 dwStyle
参数中指定样式组合。 有关 Windows 中按钮样式的详细信息,请参阅按钮样式 (Windows)。
按钮类型
下表列出了按钮类型。 可以选择以下选项之一。 如果不指定按钮类型,则默认值为 BS_PUSHBUTTON
。
类型 | 描述 |
---|---|
BS_3STATE |
创建具有三种状态的复选框按钮:BST_CHECKED 、BST_INDETERMINATE 和 BST_UNCHECKED 。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,但不会更改按钮的状态。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。 |
BS_AUTO3STATE |
创建具有三种状态的复选框按钮:BST_CHECKED 、BST_INDETERMINATE 和 BST_UNCHECKED 。 单击按钮会向所有者窗口发送 BN_CLICKED 通知并更改按钮的状态。 按钮状态按照 BST_CHECKED 、BST_INDETERMINATE 和 BST_UNCHECKED 顺序循环。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。 |
BS_AUTOCHECKBOX |
创建具有两种状态的复选框按钮:BST_CHECKED 和 BST_UNCHECKED 。 单击按钮会向所有者窗口发送 BN_CLICKED 通知并更改按钮的状态。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。 |
BS_AUTORADIOBUTTON |
创建具有两种状态的单选按钮:BST_CHECKED 和 BST_UNCHECKED 。 单选按钮通常以组的形式使用,每一组中每次最多有一个选项处于选中状态。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,将单击的单选按钮的状态设置为 BST_CHECKED ,并将按钮组中所有其他单选按钮的状态设置为 BST_UNCHECKED 。 默认情况下,关联的文本显示在单选按钮的右侧。 若要在单选按钮左侧显示文本,请使用 BS_LEFTTEXT 或 BS_RIGHTBUTTON 样式。 |
BS_CHECKBOX |
创建具有两种状态的复选框按钮:BST_CHECKED 和 BST_UNCHECKED 。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,但不会更改按钮的状态。 默认情况下,关联的文本显示在复选框的右侧。 若要在复选框左侧显示文本,请使用 BS_LEFTTEXT 或 BS_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_CHECKED 和 BST_UNCHECKED 。 单选按钮通常以组的形式使用,每一组中每次最多有一个选项处于选中状态。 单击按钮会向所有者窗口发送 BN_CLICKED 通知,但不会自动更改组中任何按钮的状态。 默认情况下,关联的文本显示在单选按钮的右侧。 若要在单选按钮左侧显示文本,请使用 BS_LEFTTEXT 或 BS_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_DBLCLK 、BN_KILLFOCUS 和 BN_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_SIMPLE 或 CBS_DROPDOWN 样式创建的组合框。 |
CBS_OWNERDRAWFIXED |
列表框的所有者负责绘制其内容;列表框中的项的高度全都相同。 |
CBS_OWNERDRAWVARIABLE |
列表框的所有者负责绘制其内容;列表框中的项的高度不同。 |
CBS_SIMPLE |
始终显示列表框。 列表框中的当前选择显示在编辑控件中。 |
CBS_SORT |
对输入到列表框的字符串进行自动排序。 |
CBS_UPPERCASE |
将选择字段和列表中的所有文本转换为大写。 |
编辑样式
编辑样式适用于 CEdit
类对象。 在 CEdit::Create
的 dwStyle
参数中指定样式组合。 有关在 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::Create
的 dwStyle
参数中指定样式组合。
Style | 说明 |
---|---|
FWS_ADDTOTITLE |
指定要追加到框架窗口标题末尾的信息。 例如“Microsoft 绘图 - 在 Document1 中绘图”。 可以指定应用程序向导的“文档模板字符串”选项卡中显示的字符串。 如果需要关闭此选项,请重写 CWnd::PreCreateWindow 成员函数。 |
FWS_PREFIXTITLE |
在框架窗口标题中的应用程序名称之前显示文档名称。 例如“文档 - 写字板”。 可以指定应用程序向导的“文档模板字符串”选项卡中显示的字符串。 如果需要关闭此选项,请重写 CWnd::PreCreateWindow 成员函数。 |
FWS_SNAPTOBARS | 控制当控件条位于浮动窗口中而不是停靠在框架窗口中时包围控件条的框架窗口的大小。 此样式会调整窗口大小以适合控件条。 |
列表框样式
列表框样式适用于 CListBox
类对象。 在 CListBox::Create
的 dwStyle
参数中指定样式组合。 有关 Windows 中的列表框样式的详细信息,请参阅列表框样式 (Windows)。
Style | 说明 |
---|---|
LBS_DISABLENOSCROLL |
当列表框未包含足够的项而不需要滚动时,将显示一个禁用的垂直滚动条。 如果不使用此样式,则当列表框未包含足够的项时,将会隐藏滚动条。 |
LBS_EXTENDEDSEL |
用户可以使用 SHIFT 键和鼠标或特定组合键选择多个项。 |
LBS_HASSTRINGS |
指定一个所有者描述的列表框,其中包含由字符串构成的项。 列表框保留字符串的内存和指针,以便应用程序可使用 GetText 成员函数检索特定项的文本。 |
LBS_MULTICOLUMN |
指定水平滚动的多列列表框。 SetColumnWidth 成员函数将设置列的宽度。 |
LBS_MULTIPLESEL |
用户每次单击或双击字符串时,都将切换字符串选择。 可以选择任意数量的字符串。 |
LBS_NODATA |
指定无数据列表框。 当列表框中的项数超出一千时,请指定此样式。 无数据列表框也必须有 LBS_OWNERDRAWFIXED 样式,但不能有 LBS_SORT 或 LBS_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_VKEYTOITEM 或 WM_CHARTOITEM 消息。 这允许应用程序对键盘输入执行特殊处理。 |
消息框样式
消息框样式适用于 AfxMessageBox
项。 在 AfxMessageBox
的 nType
参数中指定样式组合。 有关 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_DEFBUTTON2 或 MB_DEFBUTTON3 ,否则第一个按钮始终是默认按钮。 |
MB_DEFBUTTON2 |
第二个按钮是默认按钮。 |
MB_DEFBUTTON3 |
第三个按钮是默认按钮。 |
滚动条样式
滚动条样式适用于 CScrollBar
类对象。 在 CScrollBar::Create
的 dwStyle
参数中指定样式组合。 有关 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::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 |
指定对话框中显示的图标。 给定的文本是资源文件中其他位置定义的图标的名称(不是文件名)。 将忽略 nWidth 和 nHeight 参数;图标会自动调整自身大小。 |
SS_LEFT |
指定一个简单矩形并在矩形中左对齐显示给定的文本。 在显示文本之前先设置其格式。 超出行尾的字词会自动换行到下一个左对齐行的开头。 |
SS_LEFTNOWORDWRAP |
指定一个简单矩形并在矩形中左对齐显示给定的文本。 选项卡已展开,但字词未换行。 超出行尾的文本将被剪裁。 |
SS_NOPREFIX |
除非指定此样式,否则 Windows 会将控件文本中的任何与号 (&) 字符解释为加速器前缀字符。 在这种情况下,将删除 & 字符,并为字符串中的下一个字符添加下划线。 如果在不需要此功能的情况下要在静态控件中包含文本,可以添加 SS_NOPREFIX 。 可为任何已定义的静态控件包含此静态控件样式。 可以使用按位 OR 运算符将 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 |
截掉无法装入的文本并添加省略号。 |
窗口样式
窗口样式适用于 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 定义的所有控件属于同一组。 具有 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 |
创建一个标题栏包含控件菜单框的窗口。 仅用于带标题栏的窗口。 |
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 |
创建一个带垂直滚动条的窗口。 |
扩展的窗口样式
扩展的窗口样式适用于 CWnd
类对象。 在 CWnd::CreateEx
的 dwExStyle
参数中指定样式组合。 有关 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_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 |
指定使用此样式创建的窗口应该放在所有非最上层窗口之上,即使该窗口停用后也是如此。 应用程序可使用 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)