Я использую следующий код, чтобы добавить новую строку в две колонны ListView:Добавить новую строку в ListView
// First column
LVITEM lvi;
lvi.mask = LVIF_TEXT;
lvi.pszText = "Some Name";
lvi.iItem = 0;
lvi.iSubItem = 0;
SendMessage(hListView, LVM_INSERTITEM, 0, (LPARAM)&lvi);
// Second column
lvi.mask = LVIF_TEXT;
lvi.pszText = "Some Address";
lvi.iItem = 0;
lvi.iSubItem = 1;
SendMessage(hListView, LVM_SETITEM, 0, (LPARAM)&lvi);
Мой вопрос, как я могу добавить новую строку (в ListView, который не является пусто), я попытался увеличить значение lvi.iItem
на 1
, так что, если у меня есть 5 строк, и я хочу добавить новый, я устанавливаю значение lvi.iItem
в 5
.
Этот подход сработал, но я не уверен, что это правильно или я делаю что-то неправильно.
Так, при добавлении новой строки ('LVM_INSERTITEM'), я должен установить' lvi.iItem' в '0', и только придавая ему другое значение при добавлении Subitem ('LVM_SETITEM')? – user4582812
Да. 'LVM_INSERTITEM' добавляет новый элемент, поэтому пока нет индекса, поэтому' iItem' должен быть 0. Но как только элемент добавлен, последующие сообщения для этого элемента должны использовать его текущий индекс. –
Я попытался установить 'lvi.iItem' в' 0', чтобы добавить вторую строку, но она заменила первую строку! (первая строка стала второй строкой). – user4582812