Я искал вариант, чтобы колесо мыши работало с компонентом прокрутки, так что я получил это
void __fastcall TForm1::ScrollBox1MouseWheelDown(TObject *Sender, TShiftState Shift,
TPoint &MousePos, bool &Handled)
{
Form1->ScrollBox1->VertScrollBar->Position++;
}
void __fastcall TForm1::ScrollBox1MouseWheelUp(TObject *Sender, TShiftState Shift,
TPoint &MousePos, bool &Handled)
{
Form1->ScrollBox1->VertScrollBar->Position--;
}
Пока это работает, но прокручивается очень медленно. Есть ли способ заставить его прокручиваться быстрее, или, может быть, даже лучший способ обработки прокрутки в C ++ Builder?
TScrollBox
в C ++ Builder XE2 изначально поддерживает вертикальную прокрутку с помощью колесика мыши. Вам не нужно делать ничего лишнего, чтобы включить это поведение. Я только что проверил, все отлично работает.
Я использую C ++ Builder XE2, и он не поддерживает собственную прокрутку TScrollBox, поэтому я использую ваш подход, но только событие OnMouseWheel, прокрутка вниз, если WheelDelta ниже 0, и прокрутка вверх, если она выше 0.
Что касается скорости прокрутки, вы не можете просто добавить / вычесть более высокую константу в переменную Position? Как в:
Form1->ScrollBox1->VertScrollBar->Position += 3;