написал простенькую програму документ-представение с поддержкой персистентности.
в качевстве представения служит класс CListView.
Если загружаю файл через диалоговое окно, то все отображается правильно.
если же через переопроделение функ. OnNewDocument, все загружается в список авт.,
но нет второй колонки списка. Где тут зарыта бяка. Список сортированный.
void CTelNotView::AddToReport(TelItem *ti)
{
CListCtrl &list = GetListCtrl();
int findex, nItem = list.GetItemCount();
list.InsertItem(nItem, (LPCTSTR)ti->m_person);
LVFINDINFO fi;
ZeroMemory(&fi, sizeof(LVFINDINFO));
fi.flags = LVFI_STRING;
fi.psz = ti->m_person;
findex = list.FindItem(&fi);
if (findex == -1)
return;
list.SetItemText(findex, 1, (LPCTSTR)ti->m_tel); // dosn't work here
}
Здравствуйте, Rulya, Вы писали:
R>написал простенькую програму документ-представение с поддержкой персистентности.
R>в качевстве представения служит класс CListView.
R>Если загружаю файл через диалоговое окно, то все отображается правильно.
R>если же через переопроделение функ. OnNewDocument, все загружается в список авт.,
R>но нет второй колонки списка. Где тут зарыта бяка. Список сортированный.
R>void CTelNotView::AddToReport(TelItem *ti)
R>{
R> CListCtrl &list = GetListCtrl();
R> int findex, nItem = list.GetItemCount();
R> list.InsertItem(nItem, (LPCTSTR)ti->m_person);
R> LVFINDINFO fi;
R> ZeroMemory(&fi, sizeof(LVFINDINFO));
R> fi.flags = LVFI_STRING;
R> fi.psz = ti->m_person;
R> findex = list.FindItem(&fi);
R> if (findex == -1)
R> return;
R> list.SetItemText(findex, 1, (LPCTSTR)ti->m_tel); // dosn't work here
R>}
А зачем искать добавленный только что новый айтем, если GetListCtrl::InsertItem() как раз и вернет индекс добавленного нового элемента?
Т.е.
const int nNewItemIndex=list.InsertItem(nItem, (LPCTSTR)ti->m_person);
ASSERT(nNewItemIndex>=0);
//...
list.SetItemText(nNewItemIndex, 1, (LPCTSTR)ti->m_tel);