Я создаю CListCtrl в представлении отчета (MFC). Он загружается нормально, и я могу переупорядочивать столбцы, перетаскивая заголовки. Я сделал так, что щелчок по заголовку столбца удаляет столбец - опять же, это отлично работает, за исключением первого (крайнего левого) столбца. Здесь заголовок удаляется, но данные под ним не меняются - фактически удаляются данные из последнего столбца:
До :
Header1 Header2 Header3
Data1 Data2 Data3
После попытки удалить первый столбец:
Header2 Header3
Data1 Data2
Создав столбцы для начала, я настраиваю остальную часть таблицы следующим образом:
void MyClass::InsertItem(int x, int y, CString &str)
{
LVITEM lvi;
lvi.mask = LVIF_TEXT;
lvi.iItem = y;
lvi.iSubItem = x;
lvi.pszText = (LPTSTR)(LPCTSTR)(str);
int result;
if(x == 0) {
result = mCSVListCtrl.InsertItem(&lvi);
}
else {
result = mCSVListCtrl.SetItem(&lvi);
}
}
который, кажется, создает таблицу ОК. Затем, когда щелкают заголовок:
void MyClass::OnLvnColumnclickList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
mCSVListCtrl.DeleteColumn(pNMLV->iSubItem);// This IS getting zero
*pResult = 0;
}