Есть компонент IDC_LIST1, которому соответствует переменная m_IDC_LIST1 типа CListCtrl. При этом этот компонент IDC_LIST1 поставлен в режим таблицы (грида). Показывается при этом без прокрутки только 20 строк.
Есть динамический массив (вектор) vector myvect<string> (или vector myvect<char[80]>), содержащий, скажем, 150 строк ( std::string или char[80] ).
Как сделать так, чтобы при прокрутке (скроллинге) этого грида IDC_LIST1 по вертикали отображались бы только 50 текущих строк? То есть у меня в этом гриде расположены только 50 первых строк, я прокручиваю этот грид по вертикали вниз и когда попадаю на 51-ую строку, то у меня содержимое грида меняется--вместо строк с 1-ой по 50-ую у меня в этом гриде отображаются строки с 10-ой по 100-ую. А когда при дальнейшей прокрутке грида по вертикали вниз я попадаю на 101-ую строку, то у меня в гриде отображаются не строки с 51-ой по 100-ую, а с 101-ой по 150-ую.
Аналогично при прокуртке грида вверх--когда я попадаю на 100-ую строку, то у меня в гриде отображаются строки с 51-ой по 100-ую (при этом нижней строкой будет 100-ая строка), а не с 101-ой по 150-ую. А когда я продолжаю прокручивать грид вверх и попадаю на 50-ую строку, то у меня в гриде отображаются строки с 1-ой по 50-ую (при этом 50-ая строка будет нижней), а не строки с 51-ой по 100-ую.
То есть чтобы я мог не поместить все вместе 150 строки из моего динамического массива (вектора), а показывать этот динамический массив "по частям"--сперва первую часть по 50 строк, потом вторую часть по 50 строк, затем третью часть по 50 строк.
Как это сделать?
И как определить при прокрутке грида IDC_LIST1, на какой его строке я нахожусь? Какую функцию лучше при этом использовать-- OnLvnBeginScrollList1 или OnLvnEndScrollList1 ?
Здравствуйте, RussianFellow, Вы писали:
RF>Есть компонент IDC_LIST1, которому соответствует переменная m_IDC_LIST1 типа CListCtrl. При этом этот компонент IDC_LIST1 поставлен в режим таблицы (грида). Показывается при этом без прокрутки только 20 строк. RF>Есть динамический массив (вектор) vector myvect<string> (или vector myvect<char[80]>), содержащий, скажем, 150 строк ( std::string или char[80] ). RF>Как сделать так, чтобы при прокрутке (скроллинге) этого грида IDC_LIST1 по вертикали отображались бы только 50 текущих строк? То есть у меня в этом гриде расположены только 50 первых строк, я прокручиваю этот грид по вертикали вниз и когда попадаю на 51-ую строку, то у меня содержимое грида меняется--вместо строк с 1-ой по 50-ую у меня в этом гриде отображаются строки с 10-ой по 100-ую. А когда при дальнейшей прокрутке грида по вертикали вниз я попадаю на 101-ую строку, то у меня в гриде отображаются не строки с 51-ой по 100-ую, а с 101-ой по 150-ую. RF>Аналогично при прокуртке грида вверх--когда я попадаю на 100-ую строку, то у меня в гриде отображаются строки с 51-ой по 100-ую (при этом нижней строкой будет 100-ая строка), а не с 101-ой по 150-ую. А когда я продолжаю прокручивать грид вверх и попадаю на 50-ую строку, то у меня в гриде отображаются строки с 1-ой по 50-ую (при этом 50-ая строка будет нижней), а не строки с 51-ой по 100-ую. RF>То есть чтобы я мог не поместить все вместе 150 строки из моего динамического массива (вектора), а показывать этот динамический массив "по частям"--сперва первую часть по 50 строк, потом вторую часть по 50 строк, затем третью часть по 50 строк. RF>Как это сделать? Virtual List Controls
RF>И как определить при прокрутке грида IDC_LIST1, на какой его строке я нахожусь? Какую функцию лучше при этом использовать-- OnLvnBeginScrollList1 или OnLvnEndScrollList1 ?
"на какой его строке" кто находится? selection? индекс верхней (или нижней) строки?
Здравствуйте, VladFein, Вы писали:
RF>>И как определить при прокрутке грида IDC_LIST1, на какой его строке я нахожусь? Какую функцию лучше при этом использовать-- OnLvnBeginScrollList1 или OnLvnEndScrollList1 ? VF>"на какой его строке" кто находится? selection? индекс верхней (или нижней) строки?
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, VladFein, Вы писали:
RF>>>И как определить при прокрутке грида IDC_LIST1, на какой его строке я нахожусь? Какую функцию лучше при этом использовать-- OnLvnBeginScrollList1 или OnLvnEndScrollList1 ? VF>>"на какой его строке" кто находится? selection? индекс верхней (или нижней) строки?
RF>Индекс нижней строки.
Также меня интересует и индекс верхней строки (при скроллировании вверх).
Ясно. И ещё вопрос: можно ли определить (например, в функции CListCtrl::OnVScroll) в каком направлении я осуществляю прокрутку--вниз или вверх, или же нет такой возможности?
Здравствуйте, RussianFellow, Вы писали:
VF>>CListCtrl::GetTopIndex
VF>>CListCtrl::GetCountPerPage
RF>Ясно. И ещё вопрос: можно ли определить (например, в функции CListCtrl::OnVScroll) в каком направлении я осуществляю прокрутку--вниз или вверх, или же нет такой возможности?
Можно сравнить с предыдущим (запомненным) значением TopIndex.