LB_ADDSTRING消息

将字符串添加到列表框。 如果列表框没有 LBS_SORT 样式,则会将字符串添加到列表的末尾。 否则,字符串将插入列表并排序列表。

参数

wParam

未使用此参数。

lParam

指向要添加的以 null 结尾的字符串的指针。

如果列表框具有所有者绘制的样式,但没有 LBS_HASSTRINGS 样式,则此参数将存储为项数据而不是字符串。 可以发送 LB_GETITEMDATALB_SETITEMDATA 消息以检索或修改项数据。

返回值

返回值是列表框中字符串的从零开始的索引。 如果发生错误,则返回值LB_ERR。 如果没有足够的空间来存储新字符串,则返回值LB_ERRSPACE。

备注

如果列表框具有所有者绘制的样式和 LBS_SORT 样式,但不是 LBS_HASSTRINGS 样式,系统会将 WM_COMPAREITEM 消息一次或多次发送给列表框的所有者,以便将新项正确放置在列表框中。

LB_INITSTORAGE消息有助于加快包含大量项 (超过 100) 的列表框的初始化。 它保留指定的内存量,以便后续 LB_ADDSTRING 消息花费尽可能短的时间。 可以使用 wParamlParam 参数的估计值。 如果高估,则会分配额外的内存;如果低估,则正常分配用于超出请求金额的项。

如果列表框具有 WS_HSCROLL 样式,并且您添加的字符串比列表框宽,请发送 LB_SETHORIZONTALEXTENT 消息以确保显示水平滚动条。

对于 ANSI 应用程序,系统会使用 CP_ACP 将列表框中的文本转换为 Unicode。 这可能会导致问题。 例如,日语 Windows 中非 Unicode 列表框中的重音罗马字符会出现乱码。 若要解决此问题,请将应用程序编译为 Unicode 或使用所有者绘制的列表框。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Winuser.h (包括 Windows.h)

请参阅

引用

LB_DELETESTRING

LB_INSERTSTRING

LB_SELECTSTRING

LB_SETHORIZONTALEXTENT

WM_COMPAREITEM