Если ваш элемент управления списком не имеет стиля LBS_HASSTRINGS
, аргумент указателя на AddString()
рассматривается не как строка, а как данные элемента (см. Раздел примечаний в документации по LB_ADDSTRING ).
Поэтому, если ваши элементы списка состоят как из строки, так и из данных некоторых элементов, вы можете обернуть эти две части информации в структуру или класс и передать указатель на эту оболочку в AddString()
.
Положительным моментом является то, что и строка, и данные элемента будут доступны ко времени вызова MeasureItem()
. Недостатком является то, что вам придется реализовать CompareItem()
, если ваш список отсортирован, и освободить оболочки как при удалении элементов, так и до уничтожения элемента управления списком.