Когда вы устанавливаете «данные» для элемента в CListCtrl
с помощью функции-члена SetItemData
, вы фактически устанавливаете поле lParam
его связанного LVITEM
структура, как указано в документации, связанной выше:
Примечания Это значение является элементом lParam структуры LVITEM, как описано в Windows SDK.
Поэтому, если вы хотите выполнить поиск элемента с данными, установите элемент flags
из структуры LVFINDINFOW
в LVFI_PARAM
, а в ее поле lParam
- значение данных, которое вы ищете; затем вызовите функцию FindItem
, используя эту структуру:
LVFINDINFOW findInfo;
LPARAM searchData = 42; // Or whatever you're looking for
findInfo.flags = LVFI_PARAM;
findInfo.lParam = searchData;
int dataPos = myListCtrl.FindItem(-1, &findInfo);
//...