LB_INSERTSTRING消息
将字符串或项数据插入列表框中。 与 LB_ADDSTRING 消息不同, LB_INSERTSTRING 消息不会导致具有 LBS_SORT 样式的列表排序。
参数
-
wParam
-
要插入字符串的位置的从零开始的索引。 如果此参数为 -1,则字符串将被添加到列表末尾。
-
lParam
-
指向要插入的以 null 结尾的字符串的指针。 如果列表框具有所有者绘制的样式,但没有 LBS_HASSTRINGS 样式,则此参数将存储为项数据而不是字符串。 可以发送 LB_GETITEMDATA 和 LB_SETITEMDATA 消息来检索或修改项数据。
返回值
返回值是插入字符串的位置的索引。 如果发生错误,则返回值LB_ERR。 如果没有足够的空间来存储新字符串,则返回值LB_ERRSPACE。
备注
LB_INITSTORAGE消息有助于加快列表框的初始化速度,这些列表框具有大量项 (超过 100) 。 它保留指定的内存量,以便后续 LB_INSERTSTRING 消息花费尽可能短的时间。 可以对 wParam 和 lParam 参数使用估算值。 如果高估,则会分配额外的内存;如果低估,则正常分配用于超出请求数量的项。
如果列表框具有 WS_HSCROLL 样式,并且插入的字符串比列表框宽,请发送 LB_SETHORIZONTALEXTENT 消息以确保显示水平滚动条。
对于 ANSI 应用程序,系统会使用CP_ACP将列表框中的文本转换为 Unicode。 这可能会导致问题。 例如,日语 Windows 中非 Unicode 列表框中的重音罗马字符将出现乱码。 若要解决此问题,请将应用程序编译为 Unicode 或使用所有者绘制的列表框。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2003 [仅限桌面应用] |
标头 |
|