LB_INSERTSTRING消息

将字符串或项数据插入列表框中。 与 LB_ADDSTRING 消息不同, LB_INSERTSTRING 消息不会导致具有 LBS_SORT 样式的列表排序。

参数

wParam

要插入字符串的位置的从零开始的索引。 如果此参数为 -1,则字符串将被添加到列表末尾。

lParam

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

返回值

返回值是插入字符串的位置的索引。 如果发生错误,则返回值LB_ERR。 如果没有足够的空间来存储新字符串,则返回值LB_ERRSPACE。

备注

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

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

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

要求

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

另请参阅

引用

LB_ADDSTRING

LB_SELECTSTRING

LB_SETHORIZONTALEXTENT