ScrollBoxのMouseWheelが捕まえられないときは、FormのMouseWheelイベントで捕まえる方法がある。
1 2 3 4 5 6 7 8 9 10 11 |
void __fastcall TForm1::FormMouseWheelDown(TObject *Sender, TShiftState Shift, TPoint &MousePos, bool &Handled) { TRect ScrollBoxRect = ScrollBox->BoundsRect; ScrollBoxRect.Offset( Left, Top ); if( ScrollBoxRect.Contains( MousePos ) ) { ScrollBox->VertScrollBar->Position += 16; } Handled = false; } |
以上は、ScrollBoxがダイレクトにForm1にのっかっている時の例。
Form上のPanelの上にScrollBoxを配置しているときなどはもう一ひねり必要になる。