mfc list control
Имеется диалоговое окно в нём находится list control. В него необходимо ввести данные и затем открыть. Zadanie -класс диалога, listb - переменная ctrl list. Код кнопки вызывающей диалоговое окно:
Zadanie dll ;
ModifyStyle(LVS_TYPEMASK, LVS_REPORT);
dll.Zadanie::listb.InsertColumn(0, L"f", LVCFMT_LEFT, 150);
dll.Zadanie::listb.InsertColumn(1, L"i", LVCFMT_LEFT, 150);
dll.Zadanie::listb.InsertColumn(2, L"o", LVCFMT_LEFT, 150);
dll.Zadanie::listb.InsertColumn(3, L"Year", LVCFMT_LEFT, 150);
dll.Zadanie::listb.DeleteAllItems() ;
Student* st = GetDocument()->m_list.GetFirst();
for (; st != NULL; st = GetDocument()->m_list.GetNext())
{
int nPos = dll.Zadanie::listb.InsertItem(dll.Z adanie::listb.GetItemCount(), st->Getf(), 0);
dll.Zadanie::listb.SetItemText(nPos , 1, st->Geti());
dll.Zadanie::listb.SetItemText(nPos , 2, st->Geto());
CString sYear;
sYear.Format(L"%d", st->GetYear());
dll.Zadanie::listb.SetItemText(nPos , 3, sYear);
dll.Zadanie::listb.SetItemData(nPos , (DWORD_PTR)st);
}
dll.DoModal();
Ошибка: Вызывается исключение из-за m_Hwnd и this равного null на insertcolumn. Я подумал, что проблема в том что переменной контрола не сопоставлено его ид. Я хотел бы узнать способ сделать это. Я знаю что это делается в программе после вызова DoModal в DoDataExchange.
`DDX_Control(pDX, IDC_LIST1, listb);`
Но мне надо сделать это до domodal.