ListView с commctrl
От: IgorKr Украина  
Дата: 09.01.11 12:15
Оценка:
Здрасте.
Есть ListView. В него заносится информация с некоторым промежутком времени. Прежняя информация затирается полностю и на её место вставляется новая. Естественно что скролл при этом сдвигается на начало. Но как сделать чтобы ифнормация в ListView менялась, при этом скролл не перемещался?
Спасибо.
Re: ListView с commctrl
От: Hibiscus Россия  
Дата: 10.01.11 10:54
Оценка:
Здравствуйте, IgorKr, Вы писали:

IK>Здрасте.

IK>Есть ListView. В него заносится информация с некоторым промежутком времени. Прежняя информация затирается полностю и на её место вставляется новая. Естественно что скролл при этом сдвигается на начало. Но как сделать чтобы ифнормация в ListView менялась, при этом скролл не перемещался?
IK>Спасибо.

Вообще это странное поведение для ListView. А если в старом списке 1000 элементов, а в новом списке 1? Как ни крути скролл переместится или даже исчезнет. Пользователю короче скорее всего будет непонятно поведение вашего ListView. Объяснишь зачем?

Но можно посмотреть как устроен в MFC CListCtrl::EnsureVisible(). Я им пользовался когда хотел чтобы последний добавленный в лист элемент был виден.

Удачи!
Re[2]: ListView с commctrl
От: IgorKr Украина  
Дата: 10.01.11 11:47
Оценка:
Здравствуйте, Hibiscus, Вы писали:

H>Здравствуйте, IgorKr, Вы писали:


IK>>Здрасте.

IK>>Есть ListView. В него заносится информация с некоторым промежутком времени. Прежняя информация затирается полностю и на её место вставляется новая. Естественно что скролл при этом сдвигается на начало. Но как сделать чтобы ифнормация в ListView менялась, при этом скролл не перемещался?
IK>>Спасибо.

H>Вообще это странное поведение для ListView. А если в старом списке 1000 элементов, а в новом списке 1? Как ни крути скролл переместится или даже исчезнет. Пользователю короче скорее всего будет непонятно поведение вашего ListView. Объяснишь зачем?


H>Но можно посмотреть как устроен в MFC CListCtrl::EnsureVisible(). Я им пользовался когда хотел чтобы последний добавленный в лист элемент был виден.


H>Удачи!


Эту проблему я зделал по другому)

Возникла ещё одна. Как выделить всю строку ? Типа кликаю, не обезательно, на первый столбец и выделяется вся строка.
Re[2]: ListView с commctrl
От: Pavel Dvorkin Россия  
Дата: 10.01.11 17:36
Оценка:
Здравствуйте, Hibiscus, Вы писали:

H>Но можно посмотреть как устроен в MFC CListCtrl::EnsureVisible(). Я им пользовался когда хотел чтобы последний добавленный в лист элемент был виден.


Очень просто он устроен

LVM_ENSUREVISIBLE Message
Ensures that a list-view item is either entirely or partially visible, scrolling the list-view control if necessary. You can send this message explicitly or by using the ListView_EnsureVisible macro.
With best regards
Pavel Dvorkin
Re[3]: ListView с commctrl
От: mika747  
Дата: 12.01.11 21:59
Оценка:
Здравствуйте, IgorKr, Вы писали:

IK>Возникла ещё одна. Как выделить всю строку ? Типа кликаю, не обезательно, на первый столбец и выделяется вся строка.


Это Вы имели ввиду?


DWORD dwStyle = ListView_GetExtendedListViewStyle( hwndListView );
ListView_SetExtendedListViewStyle( hwndListView, dwStyle | LVS_EX_FULLROWSELECT );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.