Прокрутка ListView со стилем LVS_NOSCROLL
От: Norfolc Тренажеры интуиции
Дата: 12.08.05 10:39
Оценка:
Есть ListView с установленным стилем LVS_NOSCROLL.
Элементы отображает в стиле больших иконок (LVS_ICON).
При добавлении иконок они выравниваются все горизонтально. Но их больше, чем размер клиентской части ListView.
Также есть 2 кнопки для скроллинга. Я с их помщью делаю прокрутку:
ListView_Scroll(hwnd, 200, 0);
ListView_Scroll(hwnd, -200, 0);

Это работает, когда стиль LVS_NOSCROLL не стоит, а когда я его устанавливаю, то это не срабатывает.
Пробовал ListView_EnsureVisible, но никакой реакции не получил...
Как это можно исправить?
Re: Прокрутка ListView со стилем LVS_NOSCROLL
От: stmm  
Дата: 12.08.05 14:44
Оценка:
Здравствуйте, Norfolc, Вы писали:

N>Есть ListView с установленным стилем LVS_NOSCROLL.

N>Элементы отображает в стиле больших иконок (LVS_ICON).
N>При добавлении иконок они выравниваются все горизонтально. Но их больше, чем размер клиентской части ListView.
N>Также есть 2 кнопки для скроллинга. Я с их помщью делаю прокрутку:
N>
ListView_Scroll(hwnd, 200, 0);
N>ListView_Scroll(hwnd, -200, 0);

N>Это работает, когда стиль LVS_NOSCROLL не стоит, а когда я его устанавливаю, то это не срабатывает.
N>Пробовал ListView_EnsureVisible, но никакой реакции не получил...
N>Как это можно исправить?

Попробуйте так:

const LVM_FIRST = 4096;
LVM_ENSUREVISIBLE = LVM_FIRST + 19;


PostMessage(ListView1.Handle, LVM_ENSUREVISIBLE, ListView1.ItemIndex,0)
Re[2]: Прокрутка ListView со стилем LVS_NOSCROLL
От: Norfolc Тренажеры интуиции
Дата: 12.08.05 15:39
Оценка:
S>Попробуйте так:

S>const LVM_FIRST = 4096;

S> LVM_ENSUREVISIBLE = LVM_FIRST + 19;
S>PostMessage(ListView1.Handle, LVM_ENSUREVISIBLE, ListView1.ItemIndex,0)

Дело не в том, что макрос не срабатывает и сообщение не доходит до контрола,
а в том, что это не даёт никакого эфекта в случае установки LVS_NOSCROLL. Когда scrollbar есть, то всё срабатывает.

Может можно как нибудь сделать так:
Временно включить скролл-бар -> сдвинуть -> отключить...
Но уж очень по-извращённому получается...
может есть какой-нибудь нормальный способ это сделать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.