Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программная прокрутка TListView с помощью API SetScrollPos

535
03 июля 2009 года
Нездешний
537 / / 17.01.2008
Моделирование ситуации:
Кидаю на форму ListView и кнопочку. ListView в стиле vsReport, несколько колонок (чтобы выходили за размеры ListView и появился горизонтальный ScrollBar). В обработчике кнопки следующий код:
 
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    SetScrollPos(ListView1->Handle, SB_HORZ, 50, true);
}
Результат - скроллбар сместился, колонки нет. Как исправить сие злодейство?

ЗЫ. Позиционировать надо абсолютно, а не относительно, поэтому TListView::Scroll не подходит
92
03 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
 
Код:
ListView1->Scroll(GetScrollPos(ListView1->Handle, SB_HORZ) * -1, 0);
 ListView1->Scroll(150, 0);


не пойдёт?
а то после ScrollWindow и SetScrollPos ListView что-то не хочет перерисовываться корректно...

ЗЫ: если неправильно или коряво уж извиняй =)
535
03 июля 2009 года
Нездешний
537 / / 17.01.2008
Благодарю, работает! :)
Скачет только при отрисовке, ну да ладно
92
03 июля 2009 года
Тень Пса
2.2K / / 19.10.2006
у меня не скачет... но попробуй перед этими строками
 
Код:
ListView1->Canvas->Lock();

а после
 
Код:
ListView1->Canvas->Unlock();


по идее, должно перестать скакать... если я не ошибаюсь, конечно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог