У меня есть MFC List Control в Visual Studio 2013 (C++) со списком элементов (View Report)Как я могу использовать многострочный элемент в MFC ListControl?
LVCOLUMN lvColumn;
lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 120;
lvColumn.pszText = "Full Name";
((CListCtrl*)GetDlgItem(IDC_LIST1))->InsertColumn(0, &lvColumn);
lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 75;
lvColumn.pszText = "Profession";
((CListCtrl*)GetDlgItem(IDC_LIST1))->InsertColumn(1, &lvColumn);
lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 80;
lvColumn.pszText = "Fav Sport";
((CListCtrl*)GetDlgItem(IDC_LIST1))->InsertColumn(2, &lvColumn);
lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 75;
lvColumn.pszText = "Hobby";
((CListCtrl*)GetDlgItem(IDC_LIST1))->InsertColumn(3, &lvColumn);
LVITEM lvItem;
int nItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = 0;
lvItem.iSubItem = 0;
lvItem.pszText = "Sandra C. Anschwitz";
nItem = ((CListCtrl*)GetDlgItem(IDC_LIST1))->InsertItem(&lvItem);
((CListCtrl*)GetDlgItem(IDC_LIST1))->SetItemText(nItem, 1, "Singer");
((CListCtrl*)GetDlgItem(IDC_LIST1))->SetItemText(nItem, 2, "HandBall");
((CListCtrl*)GetDlgItem(IDC_LIST1))->SetItemText(nItem, 3, "Beach");
Как я могу получить многострочные элементы для полного имени, профессии, спорта и хобби?
Большое спасибо, но можете ли вы рассказать мне, как вставлять текст предмета и другую информацию в DrawItem()? В настоящее время я называю 'SetItemText (nItem, 1, Actoss.str(). C_str());' Теперь, как вызвать DrawItem()? например какова должна быть ценность LPDRAWITEMSTRUCT? –
@TOWI_Parallelism DrawItem вызывается, когда необходимо визуализировать элемент управления рисованием владельца. Вы не называете это напрямую. MFC вызовет вашу реализацию, давая вам возможность нарисовать содержимое элемента управления. [LPDRAWITEMSTRUCT] (https://msdn.microsoft.com/en-us/library/kfd1y2sd.aspx) будет заполнена информацией, которую вы используете для рисования элемента управления. – rrirower
, но есть ли способ вставить желаемый текст для каждого элемента в LPDRAWITEMSTRUCT? В вашем коде все элементы будут иметь одинаковый txt. –