Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как организовать прокрутку в CListCtrl?


Автор: erslgoeirjh 23.9.2016, 12:04
Есть переменная myListCtrl типа CListCtrl. Как организовать вертикальную и горизонтальную прокрутку содержимого в нём?
Приведите, пожалуйста, простые программные примеры.

Автор: vol4ek 23.9.2016, 18:14
вертикальная
Код

mlist.EnableScrollBarCtrl(1,1);
mlist.UpdateWindow();

горизонтальная
Код

mlist.EnableScrollBarCtrl(0,1);
mlist.UpdateWindow();


Добавлено через 2 минуты и 22 секунды
просто. программно  smile 

Автор: erslgoeirjh 4.10.2016, 12:32
Ясно. И ещё вопрос.

Я решил использовать для создания таблицы компонент CListCtrl, с которым я раньше не работал.

Я хочу сделать таблицу из двух столбцов--"Столбец 1" и "Столбец 2", в строках этой таблицы содержался бы текст и были бы видны границы между столбцами и строками.

Я повесил компонент IDC_LIST1, которому соответствует переменная m_IDC_LIST1 типа CListCtrl. Я написал следующий код:

Код

m_IDC_LIST1.InsertColumn(0,"Столбец 1");
m_IDC_LIST1.InsertColumn(1,"Столбец 2");
m_IDC_LIST1.InsertItem(0,"");
m_IDC_LIST1.SetItemText(0,0,"элемент (0,0)");
m_IDC_LIST1.SetItemText(0,1,"элемент (0,1)");
m_IDC_LIST1.InsertItem(1,"");
m_IDC_LIST1.SetItemText(1,0,"элемент (1,0)");
m_IDC_LIST1.SetItemText(1,1,"элемент (1,1)");
m_IDC_LIST1.InsertItem(2,"");
m_IDC_LIST1.SetItemText(2,0,"элемент (2,0)");
m_IDC_LIST1.SetItemText(2,1,"элемент (2,1)");
m_IDC_LIST1.InsertItem(3,"");
m_IDC_LIST1.SetItemText(3,0,"элемент (3,0)");
m_IDC_LIST1.SetItemText(3,1,"элемент (3,1)");
m_IDC_LIST1.InsertItem(1,"");
m_IDC_LIST1.SetItemText(4,0,"элемент (4,0)");
m_IDC_LIST1.SetItemText(4,1,"элемент (4,1)");
m_IDC_LIST1.InsertItem(1,"");
m_IDC_LIST1.SetItemText(5,0,"элемент (5,0)");
m_IDC_LIST1.SetItemText(5,1,"элемент (5,1)");


В результате чего у меня появляется заголовок таблицы из двух элементов--"Столбец 1" и "Столбец 2". Ниже расположена строка "элемент (0,0) элемент (0,1)",ниже расположена пустая строка, ниже расположена строка "элемент (1,0) элемент (1,1)", ниже расположена строка "элемент (2,0) элемент (2,1)" и так далее. Эта таблица прокручивается по вертикали, как я и хотел. Но никаких границ между строками и между столбцами я не вижу.

Как мне сделать так, чтобы в таблице m_IDC_LIST1 отображались границы между строками и столбцами и как мне убрать пустую строку после первой строки таблицы?

Автор: erslgoeirjh 4.10.2016, 13:45
Я сам разобрался:

Код

m_IDC_LIST1.SetExtendedStyle(LVS_EX_GRIDLINES);
m_IDC_LIST1.InsertColumn(0,"Столбец 1");
m_IDC_LIST1.InsertColumn(1,"Столбец 2");
m_IDC_LIST1.InsertItem(0,"");
m_IDC_LIST1.SetItemText(0,0,"элемент (0,0)");
m_IDC_LIST1.SetItemText(0,1,"элемент (0,1)");
m_IDC_LIST1.InsertItem(1,"");
m_IDC_LIST1.SetItemText(1,0,"элемент (1,0)");
m_IDC_LIST1.SetItemText(1,1,"элемент (1,1)");
m_IDC_LIST1.InsertItem(2,"");
m_IDC_LIST1.SetItemText(2,0,"элемент (2,0)");
m_IDC_LIST1.SetItemText(2,1,"элемент (2,1)");
m_IDC_LIST1.InsertItem(3,"");
m_IDC_LIST1.SetItemText(3,0,"элемент (3,0)");
m_IDC_LIST1.SetItemText(3,1,"элемент (3,1)");
m_IDC_LIST1.InsertItem(4,"");
m_IDC_LIST1.SetItemText(4,0,"элемент (4,0)");
m_IDC_LIST1.SetItemText(4,1,"элемент (4,1)");
m_IDC_LIST1.InsertItem(5,"");
m_IDC_LIST1.SetItemText(5,0,"элемент (5,0)");
m_IDC_LIST1.SetItemText(5,1,"элемент (5,1)");

Автор: vol4ek 4.10.2016, 13:47
свойства -> вид -> отчет. так если мне память не зменяет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)