windows窗口中控件的样式
一.按钮样式 button
BS_AUTO3STATE
创建一个与三态复选框相同的按钮,但该框在用户选择时更改其状态。状态循环通过检查,不确定和清除。
BS_AUTOCHECKBOX
创建一个与复选框相同的按钮,但每次用户选中复选框时,检查状态会自动在已选中和已清除之间切换。
BS_AUTORADIOBUTTON
创建一个与单选按钮相同的按钮,但是当用户选择它时,系统会自动将按钮的检查状态设置为选中状态,并自动设置清除同一组中所有其他按钮的检查状态。
BS_BITMAP
指定按钮显示位图。有关与BS_ICON的交互,请参阅备注部分。
BS_BOTTOM
将文本放在按钮矩形的底部。
BS_CENTER
在按钮矩形中水平居中文本。
BS_CHECKBOX
使用文本创建一个小的空复选框。默认情况下,文本显示在复选框的右侧。要显示复选框左侧的文本,请将此标志与BS_LEFTTEXT样式(或等效的BS_RIGHTBUTTON样式)结合使用。
BS_COMMANDLINK
创建一个命令链接按钮,其行为类似于BS_PUSHBUTTON样式按钮,但命令链接按钮左侧有一个绿色箭头指向按钮文本。可以通过向按钮发送BCM_SETNOTE消息来设置按钮文本的标题。
BS_DEFCOMMANDLINK
创建一个命令链接按钮,其行为类似于BS_PUSHBUTTON样式按钮。如果按钮位于对话框中,则即使命令链接按钮没有输入焦点,用户也可以通过按ENTER键选择命令链接按钮。此样式对于使用户能够快速选择最可能(默认)选项非常有用。
BS_DEFPUSHBUTTON
创建一个按钮,其行为类似于BS_PUSHBUTTON样式按钮,但具有独特的外观。如果按钮位于对话框中,则即使按钮没有输入焦点,用户也可以通过按ENTER键选择按钮。此样式对于使用户能够快速选择最可能(默认)选项非常有用。
BS_DEFSPLITBUTTON
创建一个分割按钮,其行为类似于BS_PUSHBUTTON样式按钮,但也具有独特的外观。如果分割按钮位于对话框中,则即使分割按钮没有输入焦点,用户也可以通过按ENTER键选择分割按钮。此样式对于使用户能够快速选择最可能(默认)选项非常有用。
BS_GROUPBOX
创建一个矩形,其中可以对其他控件进行分组。与此样式关联的任何文本都显示在矩形的左上角。
BS_ICON
指定按钮显示图标。请参阅备注部分,了解其与BS_BITMAP的交互。
BS_FLAT
指定按钮是二维的; 它不使用默认着色来创建三维图像。
BS_LEFT
左对齐按钮矩形中的文本。但是,如果按钮是复选框或没有BS_RIGHTBUTTON样式的单选按钮,则文本在复选框或单选按钮的右侧左对齐。
BS_LEFTTEXT
当单选按钮或复选框样式与单选按钮或复选框结合使用时,将文本放置在单选按钮或复选框的左侧。与BS_RIGHTBUTTON样式相同。
BS_MULTILINE
如果文本字符串太长而无法放在按钮矩形中的单行上,则将按钮文本包含多行。
BS_NOTIFY
启用按钮以将 BN_KILLFOCUS和 BN_SETFOCUS通知代码发送 到其父窗口。
请注意,无论是否具有此样式,按钮都会发送 BN_CLICKED通知代码。要获取 BN_DBLCLK通知代码,该按钮必须具有BS_RADIOBUTTON或BS_OWNERDRAW样式。
BS_OWNERDRAW
创建一个所有者绘制的按钮。当按钮的可视方面发生更改时,所有者窗口会收到 WM_DRAWITEM消息。不要将BS_OWNERDRAW样式与任何其他按钮样式组合使用。
BS_PUSHBUTTON
创建一个按钮,当用户选择按钮时,该按钮将 WM_COMMAND消息发布到所有者窗口。
BS_PUSHLIKE
使按钮(例如复选框,三态复选框或单选按钮)看起来像按钮一样。未按下或检查按钮时,按钮会凸起,按下或检查时,按钮会凹陷。
BS_RADIOBUTTON
用文本创建一个小圆圈。默认情况下,文本显示在圆圈的右侧。要显示圆圈左侧的文本,请将此标志与BS_LEFTTEXT样式(或等效的BS_RIGHTBUTTON样式)结合使用。将单选按钮用于相关但互斥的选项组。
BS_RIGHT
右对齐按钮矩形中的文本。但是,如果按钮是没有BS_RIGHTBUTTON样式的复选框或单选按钮,则复选框或单选按钮右侧的文本右对齐。
BS_RIGHTBUTTON
在按钮矩形的右侧放置单选按钮的圆圈或复选框的正方形。与BS_LEFTTEXT样式相同。
BS_SPLITBUTTON
创建一个拆分按钮。分割按钮有一个下拉箭头。
BS_TEXT
指定按钮显示文本。
BS_TOP
将文本放置在按钮矩形的顶部。
BS_TYPEMASK
不要使用这种风格。在BS_ *样式位上使用OR运算符产生的复合样式位。它可用于屏蔽来自给定位掩码的有效BS_ *位。请注意,这已过期,并未正确包含所有有效样式。因此,您不应该使用此样式。
BS_USERBUTTON
已过时,但与16位版本的Windows兼容。应用程序应使用BS_OWNERDRAW。
BS_VCENTER
将文本放在按钮矩形的中间(垂直)。
二。组合框样式 COMBOBOX
CBS_AUTOHSCROLL
当用户在行尾键入字符时,自动将编辑控件中的文本向右滚动。如果未设置此样式,则仅允许适合矩形边界的文本。
CBS_DISABLENOSCROLL
当框中没有足够的项目可以滚动时,在列表框中显示禁用的垂直滚动条。如果没有此样式,当列表框不包含足够的项目时,将隐藏滚动条。
CBS_DROPDOWN
与CBS_SIMPLE类似,只是除非用户选择编辑控件旁边的图标,否则不会显示列表框。
CBS_DROPDOWNLIST
与CBS_DROPDOWN类似,不同之处在于编辑控件被静态文本项替换,该文本项在列表框中显示当前选择。
CBS_HASSTRINGS
指定所有者绘制的组合框包含由字符串组成的项目。组合框维护字符串的内存和地址,以便应用程序可以使用 CB_GETLBTEXT消息来检索特定项目的文本。
有关辅助功能问题,请参阅 公开所有者绘制的组合框项目
CBS_LOWERCASE
将选择字段和列表中的所有文本转换为小写。
CBS_NOINTEGRALHEIGHT
指定组合框的大小正是应用程序在创建组合框时指定的大小。通常,系统会调整组合框的大小,使其不显示部分项目。
CBS_OEMCONVERT
将组合框编辑控件中输入的文本从Windows字符集转换为OEM字符集,然后再转换回Windows字符集。当应用程序调用CharToOem函数将组合框中的Windows字符串转换为OEM字符时,这可确保正确的字符转换 。此样式对于包含文件名的组合框最有用,并且仅适用于使用CBS_SIMPLE或CBS_DROPDOWN样式创建的组合框。
CBS_OWNERDRAWFIXED
指定列表框的所有者负责绘制其内容,并且列表框中的项目都具有相同的高度。创建组合框时,所有者窗口会收到WM_MEASUREITEM消息,当组合框的可视方面发生更改时, 会收到 WM_DRAWITEM消息。
CBS_OWNERDRAWVARIABLE
指定列表框的所有者负责绘制其内容,并且列表框中的项目的高度可变。当您创建组合框时,所有者窗口会收到组合框中每个项目的WM_MEASUREITEM消息,当组合框的可视方面发生更改时,会 收到 WM_DRAWITEM消息。
CBS_SIMPLE
始终显示列表框。列表框中的当前选择显示在编辑控件中。
CBS_SORT
自动对添加到列表框的字符串进行排序。
CBS_UPPERCASE
在选择字段和列表中将所有文本转换为大写。
三。编辑控件样式(编辑框edit)
ES_AUTOHSCROLL
当用户在行尾键入字符时,自动将文本向右滚动10个字符。当用户按下ENTER键时,控件将所有文本滚动回零位置。
ES_AUTOVSCROLL
当用户按下最后一行的ENTER键时,自动将文本向上滚动一页。
ES_CENTER
将文本置于单行或多行编辑控件中。
ES_LEFT
将文本与左边距对齐。
ES_LOWERCASE
在键入编辑控件时将所有字符转换为小写。
要在创建控件后更改此样式,请使用 SetWindowLong。
ES_MULTILINE
指定多行编辑控件。默认为单行编辑控件。
当多行编辑控件位于对话框中时,按ENTER键的默认响应是激活默认按钮。要使用ENTER键作为回车符,请使用 ES_WANTRETURN样式。
当多行编辑控件不在对话框中且指定了 ES_AUTOVSCROLL样式时,编辑控件将显示尽可能多的行,并在用户按下ENTER键时垂直滚动。如果未指定ES_AUTOVSCROLL,编辑控件将显示尽可能多的行,并且如果用户在不再显示行时按下ENTER键,则会发出蜂鸣声。
如果指定 ES_AUTOHSCROLL样式,则当插入符号越过控件的右边缘时,多行编辑控件将自动水平滚动。要开始新行,用户必须按ENTER键。如果未指定ES_AUTOHSCROLL,则控件会在必要时自动将单词包装到下一行的开头。如果用户按下ENTER键,也会启动一个新行。窗口大小决定了Wordwrap的位置。如果窗口大小更改,则“自动换行”位置会更改,并且会重新显示文本。
多行编辑控件可以有滚动条。带滚动条的编辑控件处理自己的滚动条消息。请注意,没有滚动条的编辑控件按前面段落中的描述滚动,并处理父窗口发送的任何滚动消息。
ES_NOHIDESEL
否定编辑控件的默认行为。当控件丢失输入焦点时,默认行为会隐藏选择,并在控件接收输入焦点时反转选择。如果指定 ES_NOHIDESEL,则即使控件没有焦点,也会反转所选文本。
ES_NUMBER
仅允许在编辑控件中输入数字。请注意,即使使用此设置,仍可以将非数字粘贴到编辑控件中。
要在创建控件后更改此样式,请使用 SetWindowLong。
要将输入到编辑控件中的文本转换为整数值,请使用 GetDlgItemInt函数。要将编辑控件的文本设置为指定整数的字符串表示形式,请使用 SetDlgItemInt函数。
ES_OEMCONVERT
转换在编辑控件中输入的文本。文本从Windows字符集转换为OEM字符集,然后再转换回Windows字符集。当应用程序调用CharToOem函数将编辑控件中的Windows字符串转换为OEM字符时,这可确保正确的字符转换 。此样式对于包含将在不支持Unicode的文件系统上使用的文件名的编辑控件最有用。
要在创建控件后更改此样式,请使用 SetWindowLong。
ES_PASSWORD
为编辑控件中键入的每个字符显示星号(*)。此样式仅对单行编辑控件有效。
若要更改显示的字符,或设置或清除此样式,请使用 EM_SETPASSWORDCHAR消息。
注意 要使用Comctl32.dll版本6,请在清单中指定它。有关清单的更多信息,请参阅 启用视觉样式。
ES_READONLY
阻止用户在编辑控件中键入或编辑文本。
要在创建控件后更改此样式,请使用 EM_SETREADONLY消息。
ES_RIGHT
右对齐单行或多行编辑控件中的文本。
ES_UPPERCASE
在键入编辑控件时将所有字符转换为大写。
要在创建控件后更改此样式,请使用 SetWindowLong。
ES_WANTRETURN
指定当用户在对话框中的多行编辑控件中输入文本时按ENTER键时插入回车符。如果未指定此样式,则按ENTER键与按对话框的默认按钮具有相同的效果。此样式对单行编辑控件没有影响。
要在创建控件后更改此样式,请使用 SetWindowLong。
四。列表框样式LISTBOX
LBS_COMBOBOX
通知列表框它是组合框的一部分。这允许两个控件之间的协调,以便它们呈现统一的UI。组合框本身必须设置此样式。如果样式由除组合框之外的任何内容设置,则列表框将错误地视为组合框的子项,并且将导致失败。
LBS_DISABLENOSCROLL
当列表框中没有足够的项目可以滚动时,显示禁用的水平或垂直滚动条。如果未指定此样式,则当列表框中不包含足够的项目时,将隐藏滚动条。此样式必须与 WS_VSCROLL或 WS_HSCROLL样式一起使用。
LBS_EXTENDEDSEL
允许使用SHIFT键和鼠标或特殊键组合选择多个项目。
LBS_HASSTRINGS
指定列表框包含由字符串组成的项目。列表框维护字符串的内存和地址,以便应用程序可以使用 LB_GETTEXT消息检索特定项目的文本。默认情况下,除所有者绘制的列表框之外的所有列表框都具有此样式。您可以使用或不使用此样式创建所有者绘制的列表框。
对于没有此样式的所有者绘制的列表框, LB_GETTEXT消息将检索与项目关联的值(项目数据)。
LBS_MULTICOLUMN
指定水平滚动的多列列表框。列表框自动计算列的宽度,或者应用程序可以使用LB_SETCOLUMNWIDTH消息设置宽度 。如果列表框具有LBS_OWNERDRAWFIXED样式,则应用程序可以在列表框发送WM_MEASUREITEM消息时设置宽度 。
具有LBS_MULTICOLUMN样式的列表框不能垂直滚动 - 它忽略它收到的任何 WM_VSCROLL消息。
该LBS_MULTICOLUMN和LBS_OWNERDRAWVARIABLE风格不能合并。如果同时指定了两者,则忽略LBS_OWNERDRAWVARIABLE。
LBS_MULTIPLESEL
每次用户单击或双击列表框中的字符串时,打开或关闭字符串选择。用户可以选择任意数量的字符串。
LBS_NODATA
指定无数据列表框。当列表框中的项目数超过一千时,请指定此样式。无数据列表框也必须具有LBS_OWNERDRAWFIXED样式,但不能具有LBS_SORT或LBS_HASSTRINGS样式。
无数据列表框类似于所有者绘制的列表框,但它不包含项目的字符串或位图数据。添加,插入或删除项目的命令始终忽略任何指定的项目数据; 请求在列表框中查找字符串始终失败。必须绘制项目时,系统会将 WM_DRAWITEM消息发送到所有者窗口。与WM_DRAWITEM消息一起传递的DRAWITEMSTRUCT结构的 itemID成员 指定要绘制的项的行号。无数据列表框不会发送 WM_DELETEITEM消息。
LBS_NOINTEGRALHEIGHT
指定列表框的大小与应用程序在创建列表框时指定的大小完全相同。通常,系统会调整列表框的大小,以使列表框不显示部分项目。
对于具有LBS_OWNERDRAWVARIABLE样式的列表框,始终强制执行LBS_NOINTEGRALHEIGHT样式。
LBS_NOREDRAW
指定在进行更改时不更新列表框的外观。
要更改控件的重绘状态,请使用 WM_SETREDRAW消息。
LBS_NOSEL
指定列表框包含可以查看但未选中的项目。
LBS_NOTIFY
每当用户单击列表框项目( LBN_SELCHANGE),双击项目( LBN_DBLCLK)或取消选择( LBN_SELCANCEL)时,列表框就会向父窗口发送通知代码 。
LBS_OWNERDRAWFIXED
指定列表框的所有者负责绘制其内容,并且列表框中的项目具有相同的高度。创建列表框时,所有者窗口会收到WM_MEASUREITEM消息,当列表框的可视方面发生更改时, 会收到 WM_DRAWITEM消息。
LBS_OWNERDRAWVARIABLE
指定列表框的所有者负责绘制其内容,并且列表框中的项目的高度可变。创建列表框时,所有者窗口会为框中的每个项目收到WM_MEASUREITEM消息,当列表框的可视方面发生更改时, 会收到 WM_DRAWITEM消息。
此样式会导致启用LBS_NOINTEGRALHEIGHT样式。
如果指定了LBS_MULTICOLUMN样式,则忽略此样式。
LBS_SORT
按字母顺序对列表框中的字符串进行排序。
LBS_STANDARD
按字母顺序对列表框中的字符串进行排序。每当用户单击列表框项目,双击项目或取消选择时,父窗口都会收到通知代码。列表框有一个垂直滚动条,它的四周都有边框。此样式组合了LBS_NOTIFY,LBS_SORT, WS_VSCROLL和 WS_BORDER样式。
LBS_USETABSTOPS
在绘制字符串时,允许列表框识别和扩展制表符。您可以使用 LB_SETTABSTOPS消息指定制表位。默认选项卡位置是32个对话框模板单位。对话框模板单元是对话框模板中使用的与设备无关的单元。要将对话框模板单位的测量值转换为屏幕单位(像素),请使用 MapDialogRect函数。
LBS_WANTKEYBOARDINPUT
指定只要用户按下某个键并且列表框具有输入焦点,列表框的所有者就会收到 WM_VKEYTOITEM消息。这使应用程序能够对键盘输入执行特殊处理。
五。richedit控件样式
ES_DISABLENOSCROLL
禁用滚动条而不是在不需要时隐藏它们。
ES_EX_NOCALLOLEINIT
阻止控件在创建时调用 OleInitialize函数。此窗口样式仅在对话框模板中有用,因为 CreateWindowEx不接受此样式。
ES_NOIME
禁用IME操作。此样式仅适用于亚洲语言支持。
ES_NOOLEDRAGDROP
禁用对OLE对象的拖放的支持。
ES_SAVESEL
当控件失去焦点时保留选择。默认情况下,控件的全部内容在重新获得焦点时被选中。
ES_SELECTIONBAR
向左边距添加空间,光标变为右上箭头,允许用户选择整行文本。
ES_SELFIME
指示富编辑控件以允许应用程序处理所有IME操作。此样式仅适用于亚洲语言支持。
ES_SUNKEN
使用凹陷边框样式显示控件,以便富编辑控件显示在其父窗口中。
ES_VERTICAL
沿垂直方向绘制文本和对象。此样式仅适用于亚洲语言支持。
丰富的编辑控件还支持以下编辑控件样式。
不变 描述
ES_AUTOHSCROLL
当用户在行尾键入字符时,自动将文本向右滚动10个字符。当用户按下ENTER键时,控件将所有文本滚动回零位置。
ES_AUTOVSCROLL
当用户按下最后一行的ENTER键时,自动将文本向上滚动一页。
ES_CENTER
将文本置于单行或多行编辑控件中。
ES_LEFT
左对齐文字。
ES_MULTILINE
指定多行编辑控件。默认为单行编辑控件。
ES_NOHIDESEL
否定编辑控件的默认行为。当控件丢失输入焦点时,默认行为会隐藏选择,并在控件接收输入焦点时反转选择。如果指定 ES_NOHIDESEL,则即使控件没有焦点,也会反转所选文本。
ES_NUMBER
仅允许在编辑控件中输入数字。
ES_PASSWORD
为编辑控件中键入的每个字符显示星号(*)。此样式仅对单行编辑控件有效。
ES_READONLY
阻止用户在编辑控件中键入或编辑文本。
ES_RIGHT
右对齐单行或多行编辑控件中的文本。
ES_WANTRETURN
指定当用户在对话框中的多行编辑控件中输入文本时按ENTER键时插入回车符。如果未指定此样式,则按ENTER键与按对话框的默认按钮具有相同的效果。此样式对单行编辑控件没有影响。
六。滚动条控件样式 SCROLLBAR
SBS_BOTTOMALIGN
将滚动条的下边缘与由CreateWindowEx函数的x, y, nWidth和 nHeight参数 定义的矩形的下边缘对齐 。滚动条具有系统滚动条的默认高度。将此样式与SBS_HORZ样式一起使用。
SBS_HORZ
指定水平滚动条。如果既未指定SBS_BOTTOMALIGN也未指定SBS_TOPALIGN样式,则滚动条具有由CreateWindowEx的x, y, nWidth和 nHeight参数 指定的高度,宽度和位置 。
SBS_LEFTALIGN
将滚动条的左边缘与由CreateWindowEx的x, y, nWidth和 nHeight参数 定义的矩形的左边缘对齐 。滚动条具有系统滚动条的默认宽度。将此样式与SBS_VERT样式一起使用。
SBS_RIGHTALIGN
将滚动条的右边缘与由CreateWindowEx的x, y, nWidth和 nHeight参数 定义的矩形的右边缘对齐 。滚动条具有系统滚动条的默认宽度。将此样式与SBS_VERT样式一起使用。
SBS_SIZEBOX
指定一个大小的盒子。如果既未指定SBS_SIZEBOXBOTTOMRIGHTALIGN也未指定SBS_SIZEBOXTOPLEFTALIGN样式,则大小框具有由CreateWindowEx的x, y, nWidth和 nHeight参数 指定的高度,宽度和位置 。
SBS_SIZEBOXBOTTOMRIGHTALIGN
将大小框的右下角与由CreateWindowEx的x, y, nWidth和 nHeight参数 指定的矩形的右下角对齐 。大小框具有系统大小框的默认大小。将此样式与SBS_SIZEBOX或SBS_SIZEGRIP样式一起使用。
SBS_SIZEBOXTOPLEFTALIGN
将大小框的左上角与由CreateWindowEx的x, y, nWidth和 nHeight参数 指定的矩形的左上角对齐 。大小框具有系统大小框的默认大小。将此样式与SBS_SIZEBOX或SBS_SIZEGRIP样式一起使用。
SBS_SIZEGRIP
与SBS_SIZEBOX相同,但具有凸起的边缘。
SBS_TOPALIGN
将滚动条的上边缘与由CreateWindowEx的x, y, nWidth和 nHeight参数 定义的矩形的上边缘对齐 。滚动条具有系统滚动条的默认高度。将此样式与SBS_HORZ样式一起使用。
SBS_VERT
指定垂直滚动条。如果既未指定SBS_RIGHTALIGN也未指定SBS_LEFTALIGN样式,则滚动条具有由CreateWindowEx的x, y, nWidth和 nHeight参数 指定的高度,宽度和位置 。
七。静态控件样式 static
SS_BITMAP
位图将显示在静态控件中。文本是资源文件中其他位置定义的位图(不是文件名)的名称。该样式忽略nWidth和nHeight参数; 控件自动调整大小以适应位图。
SS_BLACKFRAME
框架与框架绘制的框架颜色相同的框。默认颜色方案中此颜色为黑色。
SS_BLACKRECT
填充当前窗口框架颜色的矩形。默认颜色方案中此颜色为黑色。
SS_CENTER
一个简单的矩形,使文本在矩形中居中。文本在显示之前已格式化。超出一行末尾的单词将自动换行到下一个居中行的开头。长度超过控件宽度的单词将被截断。
SS_CENTERIMAGE
位图以包含它的静态控件为中心。控件未调整大小,因此对于控件来说太大的位图将被剪裁。如果静态控件包含单行文本,则文本将在控件的客户端区域中垂直居中。
SS_EDITCONTROL
静态控件复制多行编辑控件的文本显示特性。具体地,平均字符宽度以与编辑控件相同的方式计算,并且该函数不显示部分可见的最后一行。
SS_ENDELLIPSIS
如果字符串的末尾不适合矩形,则会截断该字符串并添加省略号。如果不在字符串末尾的单词超出矩形的限制,则会截断没有省略号的单词。使用此样式将强制控件的文本在一行而不包含自动换行。与SS_PATHELLIPSIS和SS_WORDELLIPSIS比较。
SS_ENHMETAFILE
增强的图元文件将显示在静态控件中。文本是图元文件的名称。增强的图元文件静态控件具有固定的大小; 缩放元文件以适合静态控件的客户区域。
SS_ETCHEDFRAME
使用EDGE_ETCHED边缘样式绘制静态控件的框架。有关更多信息,请参阅 DrawEdge函数。
SS_ETCHEDHORZ
使用EDGE_ETCHED边缘样式绘制静态控件的顶部和底部边缘。有关更多信息,请参阅 DrawEdge函数。
SS_ETCHEDVERT
使用EDGE_ETCHED边缘样式绘制静态控件的左右边缘。有关更多信息,请参阅 DrawEdge函数。
SS_GRAYFRAME
带有与屏幕背景(桌面)颜色相同的框架的框。此颜色在默认颜色方案中为灰色。
SS_GRAYRECT
填充当前屏幕背景颜色的矩形。此颜色在默认颜色方案中为灰色。
SS_ICON
要在对话框中显示的图标。如果控件是作为对话框的一部分创建的,则文本是资源文件中其他位置定义的图标(不是文件名)的名称。如果控件是通过CreateWindow或相关函数创建的 ,则文本是在与CreateWindow的hInstance参数指定的模块关联的资源文件中定义的图标(不是文件名)的名称。
图标可以是动画光标。
该样式忽略 CreateWindow参数nWidth和nHeight ; 控件自动调整大小以适应图标。由于它使用 LoadIcon功能,SS_ICON风格可以加载的尺寸只有图标SM_CXICON和SM_CYICON。除SS_ICON外,还可以使用SS_REALSIZEIMAGE样式绕过此限制。
如果无法通过LoadIcon加载图标 ,则尝试使用LoadCursor将指定资源作为游标加载 。如果它也失败,则尝试使用LoadImage从设备驱动程序 加载。
SS_LEFT
一个简单的矩形并左对齐矩形中的文本。文本在显示之前已格式化。超出一行末尾的单词将自动换行到下一个左对齐行的开头。长度超过控件宽度的单词将被截断。
SS_LEFTNOWORDWRAP
一个简单的矩形并左对齐矩形中的文本。标签已展开,但文字未包装。剪切延伸超过行尾的文本。
SS_NOPREFIX
防止将控件文本中的任何与号(&)字符解释为加速前缀字符。这些显示时删除了&符号,字符串中的下一个字符加下划线。任何定义的静态控件都可以包含此静态控件样式。您可以将SS_NOPREFIX与其他款式组合使用。当文件名或其他可能包含&符号的字符串必须显示在对话框中的静态控件中时,这可能很有用。
SS_NOTIFY
当用户单击或双击控件时,发送父窗口 STN_CLICKED, STN_DBLCLK, STN_DISABLE和 STN_ENABLE通知代码。
SS_OWNERDRAW
静态控件的所有者负责绘制控件。每当需要绘制控件时,所有者窗口都会收到 WM_DRAWITEM消息。
SS_PATHELLIPSIS
用椭圆替换字符串中间的字符,以便结果适合指定的矩形。如果字符串包含反斜杠(\)字符,则SS_PATHELLIPSIS会在最后一个反斜杠后保留尽可能多的文本。使用此样式将强制控件的文本在一行而不包含自动换行。与SS_ENDELLIPSIS和SS_WORDELLIPSIS比较。
SS_REALSIZECONTROL
调整位图以适合静态控件的大小。例如,更改区域设置可以更改系统字体,因此可能会调整控件的大小。如果静态控件具有位图,则位图将不再适合控件。此样式位指示位图的自动重新定尺寸以适合其控件。
如果指定了SS_CENTERIMAGE,则位图或图标居中(如果需要,则剪裁)。如果未指定SS_CENTERIMAGE,则会拉伸或缩小位图或图标。
请注意,两个轴的重新定尺寸是独立的,结果可能会改变宽高比。
与SS_REALSIZEIMAGE比较。
SS_REALSIZEIMAGE
指定使用实际资源宽度并使用LoadImage加载图标 。SS_REALSIZEIMAGE始终与SS_ICON结合使用。
SS_REALSIZEIMAGE使用 的LoadImage,覆盖通常在随后的过程中SS_ICON。它不加载游标; 如果LoadImage失败,则不再进行加载尝试。它使用实际的资源宽度。相应地调整静态控件的大小,但图标保持与控件的最初指定的左边和上边缘对齐。
请注意,如果还指定了SS_CENTERIMAGE,则图标将在控件的空间中居中,该空间是使用CreateWindow参数nWidth和nHeight指定的 。
与SS_REALSIZECONTROL比较。
SS_RIGHT
一个简单的矩形,右对齐矩形中的文本。文本在显示之前已格式化。超出一行末尾的单词将自动换行到下一个右对齐行的开头。长度超过控件宽度的单词将被截断。
SS_RIGHTJUST
在调整控件大小时,具有SS_BITMAP或SS_ICON样式的静态控件的右下角将保持固定。仅调整顶部和左侧以适应新的位图或图标。
SS_SIMPLE
一个简单的矩形,在矩形中显示一行左对齐文本。文本行不能以任何方式缩短或更改。此外,如果禁用该控件,则控件不会使其文本变灰。
SS_SUNKEN
在静态控件周围绘制一个半凹陷的边框。
SS_TYPEMASK
在SS_ *样式位上使用OR运算符产生的复合样式位。可用于屏蔽给定位掩码中的有效SS_ *位。请注意,这已过期,并未正确包含所有有效样式。因此,您不应该使用此样式。
SS_WHITEFRAME
带有与窗口背景颜色相同的框架的框。此颜色在默认颜色方案中为白色。
SS_WHITERECT
填充当前窗口背景颜色的矩形。此颜色在默认颜色方案中为白色。
SS_WORDELLIPSIS
截断任何不适合矩形的单词并添加省略号。使用此样式将强制控件的文本在一行而不包含自动换行。
与SS_ENDELLIPSIS和SS_PATHELLIPSIS比较。
windows窗口样式
WS_BORDER
0x00800000L
窗口有一个细线边框。
WS_CAPTION
0x00C00000L
该窗口有一个标题栏(包括WS_BORDER样式)。
WS_CHILD
0x40000000L
窗口是一个子窗口。具有此样式的窗口不能有菜单栏。此样式不能与WS_POPUP样式一起使用。
WS_CHILDWINDOW
0x40000000L
与WS_CHILD样式相同。
WS_CLIPCHILDREN
0x02000000L
在父窗口中进行绘制时,排除子窗口占用的区域。创建父窗口时使用此样式。
WS_CLIPSIBLINGS
0x04000000L
夹住儿童窗户彼此相对; 也就是说,当特定子窗口收到 WM_PAINT消息时,WS_CLIPSIBLINGS样式会剪切要更新的子窗口区域之外的所有其他重叠子窗口。如果未指定WS_CLIPSIBLINGS并且子窗口重叠,则在子窗口的客户区域内绘制时,可以在相邻子窗口的客户区域内绘制。
WS_DISABLED
0x08000000L
该窗口最初被禁用。禁用的窗口无法接收用户的输入。要在创建窗口后更改此设置,请使用 EnableWindow功能。
WS_DLGFRAME
0x00400000L
窗口具有通常与对话框一起使用的样式的边框。具有此样式的窗口不能有标题栏。
WS_GROUP
0x00020000L
该窗口是一组控件的第一个控件。该组由第一个控件和在其后定义的所有控件组成,直到具有WS_GROUP样式的下一个控件。每个组中的第一个控件通常具有WS_TABSTOP样式,以便用户可以从一个组移动到另一个组。用户随后可以通过使用方向键将键盘焦点从组中的一个控件更改为组中的下一个控件。
您可以打开和关闭此样式以更改对话框导航。要在创建窗口后更改此样式,请使用 SetWindowLong函数。
WS_HSCROLL
0x00100000L
窗口有一个水平滚动条。
WS_ICONIC
0x20000000L
窗口最初被最小化。与WS_MINIMIZE样式相同。
WS_MAXIMIZE
0x01000000L
窗口最初是最大化的。
WS_MAXIMIZEBOX
0x00010000L
窗口有一个最大化按钮。不能与WS_EX_CONTEXTHELP样式结合使用。该WS_SYSMENU风格也必须指定。
WS_MINIMIZE
0x20000000L
窗口最初被最小化。与WS_ICONIC风格相同。
WS_MINIMIZEBOX
0x00020000L
窗口有一个最小化按钮。不能与WS_EX_CONTEXTHELP样式结合使用。该WS_SYSMENU风格也必须指定。
WS_OVERLAPPED
0x00000000L
窗口是重叠的窗口。重叠窗口具有标题栏和边框。与WS_TILED样式相同。
WS_OVERLAPPEDWINDOW
(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
窗口是重叠的窗口。与WS_TILEDWINDOW样式相同。
WS_POPUP
0x80000000L
窗口是一个弹出窗口。此样式不能与WS_CHILD样式一起使用。
WS_POPUPWINDOW
(WS_POPUP | WS_BORDER | WS_SYSMENU)
该窗口是一个弹出窗口。该WS_CAPTION和WS_POPUPWINDOW风格一定要结合使窗口菜单可见。
WS_SIZEBOX
0x00040000L
窗口有一个尺寸边框。与WS_THICKFRAME样式相同。
WS_SYSMENU
0x00080000L
窗口的标题栏上有一个窗口菜单。该WS_CAPTION风格也必须指定。
WS_TABSTOP
0x00010000L
该窗口是一个控件,当用户按下TAB键时,该控件可以接收键盘焦点。按TAB键可将键盘焦点更改为WS_TABSTOP样式的下一个控件。
您可以打开和关闭此样式以更改对话框导航。要在创建窗口后更改此样式,请使用 SetWindowLong函数。对于用户创建的窗口和无模式对话框以使用制表位,请更改消息循环以调用 IsDialogMessage函数。
WS_THICKFRAME
0x00040000L
窗口有一个尺寸边框。与WS_SIZEBOX样式相同。
WS_TILED
0x00000000L
窗口是重叠的窗口。重叠窗口具有标题栏和边框。与WS_OVERLAPPED样式相同。
WS_TILEDWINDOW
(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
窗口是重叠的窗口。与WS_OVERLAPPEDWINDOW样式相同。
WS_VISIBLE
0x10000000L
窗口最初是可见的。
可以使用ShowWindow或 SetWindowPos函数打开和关闭此样式 。
WS_VSCROLL
0x00200000L
窗口有一个垂直滚动条。
作者:sjk_beijing
来源:CSDN
原文:https://blog.csdn.net/sjk_beijing/article/details/94736027
版权声明:本文为博主原创文章,转载请附上博文链接!