Как создать многоколонный список? - PullRequest
4 голосов
/ 30 января 2010

Я работаю над программой, которая должна перечислить все файлы и их размер (на данный момент ...). Я создал простое приложение, которое должно записывать данные в список. Я пытаюсь записать данные в два столбца (первый должен быть именем, а рядом с ним, в другом столбце, его размер), но я не могу понять, как мне это сделать. Кто-нибудь может мне помочь?

Заранее спасибо!

Kampi

Обновление:

Я пытаюсь использовать ListControl., Но, к сожалению, не могу. Я могу успешно скомпилировать свое приложение, но вижу только пустой прямоугольник. Кто-то знает, что я делаю не так?

BOOL CGetFileListDlg::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

// TODO: Add extra initialization here

LVITEM lvItem;
LVCOLUMN lvColumn;
int nCol;

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_CENTER;
lvColumn.cx = 10;
lvColumn.pszText = _T("Filename");
ListView_InsertColumn( m_List, 0, &lvColumn ); 
ListView_SetItemText( m_List, 0, 0, _T("TEST") );

return TRUE;  // return TRUE  unless you set the focus to a control    
}

Ответы [ 4 ]

4 голосов
/ 30 января 2010

Элемент управления со списком поддерживает несколько столбцов, но поддерживает только одну серию записей; поддержка нескольких столбцов просто заставляет элементы переходить к следующим столбцам, поэтому вертикальная прокрутка не требуется.

Как и предполагал Корнел, элемент управления списком может быть более подходящим. После создания элемента управления представления списка используйте ListView_InsertColumn для создания столбцов. Затем используйте ListView_SetItemText для вставки элементов.

EDIT: Мои извинения; Вы должны использовать ListView_InsertItem для вставки элемента (строки), а затем использовать ListView_SetItemText для изменения подэлементов (столбцов). Если представление списка по-прежнему представляет собой пустое поле без каких-либо заголовков, инициализировали ли вы общие элементы управления? Это можно сделать с помощью InitCommonControlsEx , указав константу ICC_LISTVIEW_CLASSES. Это следует сделать до создания элемента управления.

См. документацию Microsoft по элементам управления списком .

2 голосов
/ 30 января 2010

Не используйте список, используйте Список управления со стилем LVS_REPORT.

0 голосов
/ 04 марта 2016

Три важных параметра, которые необходимо проверить:

  1. Поле списка или элемент управления списком (должен использоваться элемент управления списком)
  2. Параметр просмотра должен быть в режиме отчета
  3. Данные владельца должны быть установлены в False Скриншот показывает эти enter image description here

Поток программирования для добавления данных в элемент управления списком: изменить элемент управления списком на расширенный вид списка (ListView_SetExtendedListViewStyle), создать макет (путем добавления столбцов), добавить данные элемента (для каждой необходимой строки) и добавить, наконец, добавить подпункт -позиция к каждому столбцу (для каждого элемента данных, добавленных ранее).

0 голосов
/ 30 января 2010

Возможно использовать DataGridView с объектом в качестве источника данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...