列表框样式

若要使用 CreateWindow 或 CreateWindowEx 函数创建列表框,请使用 LISTBOX 类、适当的窗口样式常量以及以下样式常量来定义列表框。 创建控件后,无法修改这些样式,但如前所述。

一直 说明
LBS_COMBOBOX
通知列表框它是组合框的一部分。 这允许两个控件之间的协调,以便它们呈现统一的 UI。 组合框本身必须设置此样式。 如果样式由组合框之外的任何内容设置,则列表框将错误地视为组合框的子级,并且失败将导致失败。
LBS_DISABLENOSCROLL
当列表框不包含足够的项目滚动时,显示禁用的水平或垂直滚动条。 如果未指定此样式,则当列表框不包含足够的项目时,滚动条将隐藏。 此样式必须与 WS_VSCROLLWS_HSCROLL 样式一起使用。
LBS_EXTENDEDSEL
允许使用 SHIFT 键和鼠标或特殊键组合选择多个项。
LBS_HASSTRINGS
指定列表框包含由字符串组成的项。 列表框维护字符串的内存和地址,以便应用程序可以使用 LB_GETTEXT 消息检索特定项的文本。 默认情况下,除所有者绘制的列表框之外的所有列表框都具有此样式。 可以创建具有或不带此样式的所有者绘制列表框。
对于没有此样式的所有者绘制列表框, LB_GETTEXT 消息检索与项关联的值, (项数据) 。
LBS_MULTICOLUMN
指定水平滚动的多列列表框。 列表框自动计算列的宽度,或者应用程序可以使用 LB_SETCOLUMNWIDTH 消息设置宽度。 如果列表框具有 LBS_OWNERDRAWFIXED 样式,则当列表框发送 WM_MEASUREITEM 消息时,应用程序可以设置宽度。
具有 LBS_MULTICOLUMN 样式的列表框不能垂直滚动它忽略它接收的任何 WM_VSCROLL 消息。
不能组合 LBS_MULTICOLUMNLBS_OWNERDRAWVARIABLE 样式。 如果同时指定了两者, 则忽略LBS_OWNERDRAWVARIABLE
LBS_MULTIPLESEL
每次用户单击或双击列表框中的字符串时,都会打开或关闭字符串选择。 用户可以选择任意数量的字符串。
LBS_NODATA
指定无数据列表框。 当列表框中的项数超出一千时,请指定此样式。 无数据列表框还必须具有 LBS_OWNERDRAWFIXED 样式,但不得具有 LBS_SORTLBS_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_NOTIFYLBS_SORTWS_VSCROLLWS_BORDER 样式。
LBS_USETABSTOPS
允许列表框在绘制其字符串时识别和展开制表符。 可以使用 LB_SETTABSTOPS 消息指定制表位位置。 默认选项卡位置相隔 32 个对话框模板单位。 对话框模板单元是对话框模板中使用的与设备无关的单位。 若要将度量值从对话框模板单位转换为屏幕单位 (像素) ,请使用 MapDialogRect 函数。
LBS_WANTKEYBOARDINPUT
指定每当用户按下键且列表框具有输入焦点时,列表框的所有者将接收 WM_VKEYTOITEM 消息。 这使应用程序能够在键盘输入上执行特殊处理。

要求

要求 Value
标头
Winuser.h