BOOL CMyMainDlg::OnInitDialog(){
CDialog::OnInitDialog();
//------------Creating List Control---------//
//Control rectangle
CRect rect(m_iDirListLeft, m_iDirListTop, 320, 295);
m_cDirList = new CListCtrl();
m_cDirList->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS, rect, this, IDC_DIRSTRUCTLIST);
if(m_cDirList == NULL)
return FALSE;
//Control columns
LVCOLUMN col_info;
col_info.mask = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
col_info.fmt = LVCFMT_LEFT;
col_info.cx = 185;
col_info.pszText = "Name";
col_info.cchTextMax = 5;
col_info.iSubItem = 0;
int res=::SendMessage(m_cDirList->m_hWnd, LVM_INSERTCOLUMN, 0, (long)(&col_info));
if(res == -1){
delete m_cDirList;
return FALSE;
}
col_info.mask = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
col_info.fmt = LVCFMT_RIGHT;
col_info.pszText = "Size";
col_info.cchTextMax = 5;
col_info.cx = 104;
col_info.iSubItem = 1;
res=::SendMessage(m_cDirList->m_hWnd, LVM_INSERTCOLUMN, 1, (long)(&col_info));
if(res==-1){
delete m_cDirList;
return FALSE;
}
//------------------------------------------//
SetIcon(m_hIcon, TRUE);
return TRUE;
}
CListCtrl и нулевой элемент
У меня такая смешная проблема.
У меня в диалоговом окне есть CListCtrl элемент. Вот как я его создаю:
Код:
Как видите это список с двумя колонками. Так вот проблема: я не могу добавить нулевой элемент в список. Когда я вызываю методы для вставки\удаления нулевого элемента (напр. InsertItem(0, ””) или DeleteItem(0)), они всегда возвращают FALSE. Пока что работает так: я добавляю элементы начиная с первого, а на месте нулевого в диалоге - пустота, но хотелось бы как то решить эту проблему.
Если нулевой элемент для чего-то зарезервирован, то может можно хотя бы его как-то спрятать, чтобы он не отображался?
Заранее благодарен.
Код:
...
CListCtrl m_List;
...
m_List.InsertColumn( 0, "Titul1", LVCFMT_LEFT, 115 );
m_List.InsertColumn( 1, "Titul2", LVCFMT_LEFT, 55 );
m_List.InsertColumn( 2, "Titul3", LVCFMT_LEFT, 75 );
...
//вствляем текст в колонку
d=m_List.InsertItem(LVIF_TEXT|LVIF_IMAGE,d,name,0,0,index_img,0L);
m_List.SetItemText(d, 0, name);//d-индекс записи в калонке
//0-колонка
//name-текст
...
CListCtrl m_List;
...
m_List.InsertColumn( 0, "Titul1", LVCFMT_LEFT, 115 );
m_List.InsertColumn( 1, "Titul2", LVCFMT_LEFT, 55 );
m_List.InsertColumn( 2, "Titul3", LVCFMT_LEFT, 75 );
...
//вствляем текст в колонку
d=m_List.InsertItem(LVIF_TEXT|LVIF_IMAGE,d,name,0,0,index_img,0L);
m_List.SetItemText(d, 0, name);//d-индекс записи в калонке
//0-колонка
//name-текст
...
May the force be with you:cool:
Это мой прогон! На самом деле все работает, просто я думал, что InsertItem() возвращает 0 при неудаче, а оказываеться, он возвращает индекс! Вот это прогон! Да-а-а-а, надо внимательнее MSDN читать!
Спасибо за ответ, CilCatblack.