スクロールバーを、設定値以外の場所で固定するには?

解決


たかみちえ  URL  2003-06-23 01:32:38  No: 3839

スクロールバーを、MaxやMinプロパティで設定した以外の好きな場所で、
これ以上動かさないように固定するにはどうしたらいいんでしょうか?
  たとえば、Minプロパティは0の状態だけど、事情があって今は24以下にしてほしくない場合、
最低25で固定され、動かなくなるように。

  OnScrollイベントの中で、引数のScrollPosを設定すればいいというのがわかったんですけど、
これだと、スクロールバー上の四角をつかんで動かしている場合、
四角の場所が元に戻るのが、マウスボタンを離した後になってしまいます。
  これを、四角をつかんで移動中でも、四角が行ってほしくない場所で止まり、それ以上動かなくなるようにしたいんです。
  途中でWM_LBUTTONUPを送るなど試してみたんですけど、
やり方が間違っていたのか、何の効果もなく・・・。

  いい方法があったら教えてください。お願いします。


にしの  2003-06-23 03:47:29  No: 3840

ReleaseCaptureすれば、25で止まりますが、その代わりスクロールバーを離したことと同じになります。

こんな感じですね。
    if ScrollPos < 25 then
    begin
      ReleaseCapture;
      ScrollPos := 25;
    end;


たかみちえ  URL  2003-06-23 04:26:07  No: 3841

わぁ、ありがとうございます(^.^)
これです。こんな感じをさがしていました。スクロールバーを放したのと同じようにしたかったんです。
  ReleaseCaptureの直後、スクロールバーの色がおかしくなったんですけど、
それも直後に再描画を促すことで何とかなりました。

  にしのさん、ありがとうございます!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加