Никак не могу найти нормальной информации по этому классу. Те жалкие отрывки, что везде встречаю — только путают.
Может ли кто-нибудь в паре слов объяснить, как это работает (нужно таблицу из 5 столбцов представить через CListCtrl) Как работает InsertItem, чтобы добавлялось не только зачение первого столбца, но и остальных?
Может, статья какая-нибудь есть для чайников?
Здравствуйте, bobr, Вы писали:
B>Никак не могу найти нормальной информации по этому классу. Те жалкие отрывки, что везде встречаю — только путают.
MSDN-а нет?
B> Может ли кто-нибудь в паре слов объяснить, как это работает (нужно таблицу из 5 столбцов представить через CListCtrl) Как работает InsertItem, чтобы добавлялось не только зачение первого столбца, но и остальных?
а остальные заполняются через
SetItemВот — новый русский, с пейджером на пузе (В. Вишневский)
Здравствуйте, bobr, Вы писали:
Хедер
class CVK_1Dlg : public CDialog
{
///////////
CListCtrl m_cLogFiles; //Класс визардом добавляем. Еще SubclassDlgItem заюзать мона для MFC, но IMHO CW лучше
///////////
};
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
m_cLogFiles.SetExtendedStyle(m_cLogFiles.GetExtendedStyle() |
(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES));
// TODO: Add extra initialization here
m_cLogFiles.InsertColumn(0,"#",LVCFMT_LEFT,20,0);
m_cLogFiles.InsertColumn(1,"Описание",LVCFMT_LEFT,180,0);
m_cLogFiles.InsertColumn(2,"Число сообщений",LVCFMT_LEFT,60,0);
m_cLogFiles.InsertColumn(3,"Путь к файлу",LVCFMT_LEFT,180,0);
//Добавляем наши строки
static const char* descr[] = {"Строка 1","Строка 2","Строка 3"};
for(int i = 0;i<sizeof(descr)/sizeof(descr[0]);++i)
{
CString str;
str.Format("%d",i); //в первой колонке - номер
int idx = m_cLogFiles.InsertItem(i,str);
LVITEM li;
ZeroMemory(&li,sizeof(li));
li.mask = LVIF_TEXT;
li.pszText = const_cast<char*>( descr[i] ); //за это могут тухлым помидором кинуть :) , но работает
li.iItem = idx;
li.iSubItem = 1;
m_cLogFiles.SetItem(&li); //наша субитемина
}
return TRUE; // return TRUE unless you set the focus to a control
}
Под WinAPI все гораздо эротичней

Можешь глянуть примерчик (
для седьмой студии)
- Простите, профессор, не пса, а когда он уже был человеком.
— То-есть он говорил? Это еще не значит быть человеком. (с) Булгаков