2012-04-17 9 views
0

MFCアプリケーションのビューで、クリックすると特定の矩形領域を選択できます&ドラッグします。しかし、現在の画面よりも大きな領域を選択したい場合は、マウスポインタがクライアント領域の近くにあるときにビューが自動的にスクロールしないため、これを行うことはできません。マウスがMFC内の視界の近くにあるときに自動スクロールする方法

この問題を解決するにはどうすればよいですか?すべての参照で十分です。

答えて

1

通常、ユーザーがマウスボタンを押したままにすると、これが行われます。その場合、クリックするとマウスをキャプチャするのが普通です。その後、WM_MOUSEMOVEメッセージを処理します。あなたのケースでは、マウスの現在の位置をウィンドウの境界と比較し、ウィンドウが十分に接近すると(たとえば10ピクセル以内)、その位置でスクロールし始めます。

スクロール速度をかなり慎重にコントロールすることを追加する必要があると感じています。プログラムによってはこれほど速くスクロールできないため、ほとんど使用できなくなります。既にの方法をスクロールしました。あなたが何をするにせよ、彼らはゆっくりとスクロールし、短い距離でも動くことは永遠にかかるように見える。

「正しい」速度を得るための簡単な答えがあるのではないかと疑いがあります。あなたは一般的にグラデーションを必要とします。境界線の近くに並べるとゆっくりスクロールし、近づくほどスクロールが速くなります。あなたはまだそれの上限と下限についてかなり注意する必要があるので、 "ああ、私はそこに着くつもりですか"から飛び降りるだけでなく、 "whoa、back up、それはすでにの方法です! "

+0

ご回答ありがとうございます。私はあなたが言っていることを十分に理解しています。私はマウスの移動メッセージのスクロールをプログラムで処理しなければならないと思います。それは難しいでしょう。 –

関連する問題