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

Ваш аккаунт

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

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

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

Проблема с ScrollBy в TRichEdit

3.0K
09 февраля 2004 года
DrDee
11 / / 19.07.2003
ScrollBy в TRichEdit работает некорректно.
Скролю текст, обрабатывая событие OnMouseWheel:

Исходное состояние TRichEdit


После нескольких поворотов колеса:


[FONT=courier new]
code:

void __fastcall TMainWindow::ChWheel(TObject *Sender, TShiftState Shift,
int WheelDelta, TPoint &MousePos, bool &Handled)
{


int Delta = 1; // Сдвиг SCROLLBAR
int ScDelta = 10; // Сдвиг текста в RICHEDIT

// Проверяем было ли прокручено колесо и
// Не выходит ли полоска CSCROLLBAR за
// обозначенные границы (scY01; scY02)

// Для сдвига вниз

if ((WheelDelta < 0) && (btnScrollBar->Top + Delta <= scY02))
{

// Сдвигаем полоску SCROLLBAR
btnScrollBar->Top += Delta;

// Cкролим текст в RICHEDIT
TextField->ScrollBy(0, -ScDelta);


}

// SCROLLBAR занимает одно из крайних положений
else
{
if (WheelDelta < 0)
{
btnScrollBar->Top = scY02;
}
}


// Для сдвига вверх

if (WheelDelta > 0 && (btnScrollBar->Top - Delta >= scY01))
{

//Сдвигаем полоску SCROLLBAR
btnScrollBar->Top -= Delta;

//Cкролим текст в RICHEDIT
TextField->ScrollBy(0, ScDelta);


}

// SCROLLBAR занимает одно из крайних положений
else
{
if (WheelDelta > 0)
{
btnScrollBar->Top = scY01;
}
}
}
[/FONT]

Все эти запары мне нужны для того, чтобы организовать свой скроллинг.

Почему же текст скроллится так поуродски? Была идея использовать TRichEdit->Repaint(), но он перерисовывает, и помещает скролл в начало =(

Заранее спасибо)
3.0K
11 февраля 2004 года
DrDee
11 / / 19.07.2003
Не удалось организовать собственный попиксельный скроллинг, т.к. с TRichEdit и вправду что-то не так. Зато удалось организовать принудительный построчный скроллинг:

SendMessage(TextField->Handle,WM_VSCROLL,SB_LINEUP,0);

SendMessage(TextField->Handle,WM_VSCROLL,SB_LINEDOWN,0);

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