2

マウスホイールをスクロールボックスコンポーネントで動作させるオプションを探していましたが、これまでのところこれを入手しました

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++ ビルダーでスクロールを処理するより良い方法はありますか?

4

2 に答える 2

1

TScrollBoxC++Builder XE2 では、マウス ホイールによる垂直スクロールがネイティブにサポートされています。その動作を有効にするために特別なことをする必要はありません。私はちょうどそれをテストしました、それはうまくいきます。

于 2013-03-28T17:48:57.860 に答える
0

私は C++Builder XE2 を使用していますが、TScrollBox のスクロールをネイティブにサポートしていないため、あなたのアプローチを使用しますが、OnMouseWheel イベントのみを使用し、WheelDelta が 0 より低い場合は下にスクロールし、0 より大きい場合は上にスクロールします。

スクロール速度について、Position変数に上位の定数を足したり引いたりできないのでしょうか?のように:

Form1->ScrollBox1->VertScrollBar->Position += 3; 
于 2013-05-17T14:58:49.107 に答える