ねすくろ / スクロールデータ / プロパティ

一つの宣言部の中にプロパティを重複して定義した場合、先に定義されたものは後の定義により上書きされます。

文中で(H|V)と書かれているものは、水平(Horizontal), 垂直(Vertical)のどちらかを、H か V かで指定します。(H|V)?と書かれているものは、H, V の指定を省略可能で、省略した場合は、両方を一括して指定したものとします。

IsScroll

スクロールするかどうかを指定します。

True
その他のプロパティで指定されたルールに従ってスクロールその他のアクションをします。
False
その他のプロパティは無視し、スクロールその他のアクションをしません。

IsInertia

慣性スクロールするかどうかを指定します。

True
慣性スクロールをします。
False
慣性スクロールをしません。

(H|V)IsScroll

水平方向、垂直方向についてスクロールするかどうかを指定します。

IsScroll とは多少動作が違い、もし両方ともFalseにしても、他のプロパティが無視されるわけではありません。

True
指定された方向のマウスの移動に沿ってスクロールをします。
False
指定された方向のマウスの移動でスクロールはしません。

SendTo

スクロールする命令を送るウィンドウをセレクタと同じ形式で指定します。

ポイントされたウィンドウをスクロールしたいところですが、ポイントされたと認識するウィンドウが実はスクロールしたいウィンドウの手前にある別のウィンドウだったりする場合があります。そのようなとき、Parent.ChildPoint.Style(WS_VSCROLL) などと指定します。

Method

スクロールの方法を指定します。

ScrollPos
スクロール情報の Pos の値を指定してスクロールします。絶対位置指定になります。
ListViewScroll
リストビュー用のスクロールメッセージを送ります。
MouseWheel
マウスホイールメッセージを送ります。
MouseWheelIE6
IE6用に特化したマウスホイールメッセージを送ります。
MouseWheelIE7
IE7(β)用に特化したマウスホイールメッセージを送ります。
ScrollLine
一行ごとのスクロールメッセージを送ります。
ArrowKey
矢印キーを送ります。
CArrowKey
コントロールキーを押しながらの矢印キーを送ります。
Auto
スクロールできそうな方法を適当に探します。

CursorPos

スクロールする命令にマウスカーソルの位置が要求される場合(今のところ、マウスホールメッセージのみ)、どの位置を使うか指定します。

Current
現在のマウスカーソルの位置を使います。ただし、もし現在のマウスカーソルの位置が、命令の送り先ウィンドウの範囲外にある場合は、範囲内にずらした位置を使います。
Pointed
右ボタンが押されたときのマウスカーソルの位置を使います。

ButtonDown

右ボタンが押されたときの動作を指定します。

KeyDown, KeyUp, Key
キーボードの押し上げを再現します。KeyDown(A) や KeyDown(Control) の様に、Windowsの仮想キーコードの定数名から "VK_" を除いた文字(大文字小文字は無視します)を引数に指定します。Key(キー名) は、KeyDown(キー名), KeyUp(キー名) を続けて指定したのと同じ動作をします。
ButtonDown, ButtonUp, Button
マウスのボタンの押し上げを再現します。ButtonDown(ボタンの種類) といったように引数にボタンの種類を指定します。ボタンの種類は、Left, Right, Middle が指定できます。Button(ボタンの種類) は、ButtonDown(ボタンの種類), ButtonUp(ボタンの種類) を続けて指定したのと同じ動作をします。
SetForegroundWindow, SetActiveWindow, SetFocus, BringWindowToTop
該当する API の関数を実行します。

実際にButtonDownプロパティで指定する動作は、BringWindowToTop などだと思います。どれも似たような動作で、違いをよく理解していないのですが、どれかを指定すると動いたり、どれかを指定すると動かなかったり、といったことがあります。

ButtonUpNoScrolled

ButtonDown と同じ形式で、右ボタンが離されたときの動作を指定します。これは、右ボタンを押したときにそのウィンドウが慣性でスクロールしていなく、かつ右ボタンを押してからスクロールをしなかった場合の動作です。

ここに ButtonDown(Right), ButtonUp(Right) を指定することで、スクロールしなかったときの右クリックの動作を再現しています。

ButtonUpScrolled

ButtonDown と同じ形式で、右ボタンが離されたときの動作を指定します。これは、右ボタンを押したときにそのウィンドウが慣性でスクロールしていたか、右ボタンを押してからスクロールをした場合の動作です。

ここに何かを指定するケースは少ないかと思います。

ButtonUp

ButtonDown と同じ形式で、右ボタンが離されたときの動作を指定します。

ButtonUpNoScrolled と ButtonUpScrolled とを別々に指定しないときに使います。

SetCaret

右ボタンが押された位置にキャレットをセットするかどうか指定します。

順番としてはButtonDownで指定された動作が終了してからキャレットをセットします。これは順番の変更はできません。

True
キャレットをセットします。
False
キャレットをセットしません。

(H|V)?ScrollBar

標準スクロールバーを持つウィンドウか、スクロールバーコントロールを、セレクタと同じ形式で指定します。

スクロールする命令を送る際、送り先のウィンドウだけでなく、スクロールバーがどれであるかも指定する必要がある場合があり、そのときに使います。

(H|V)?ScrollBarType

標準スクロールバーなら縦なのか横なのかを、スクロールバーコントロールならスクロールバーコントロールだということを指定します。

Auto だと、適当に判断します。たいがいはAutoで大丈夫ですが、特殊なケースがある可能性から、任意に指定できるようにしています。

Horizontal
水平方向の標準スクロールバー。
Vertical
垂直方向の標準スクロールバー。
Control
スクロールバーコントロール。
Auto
自動設定。

(H|V)?ScrollWidth

一回のスクロールあるいはスクロール量の 1 に対して、実際に画面上でスクロールするドット数を数値と単位で指定します。

単位はドットですが、記述の簡単さや自動計算のために特殊な単位を持ちます。

Dot
数値は単にドット数を表します
ClientLen
SendToプロパティで指定されるウィンドウのクライアント領域の長さを数値にかけた値を使います。
ClientLen/ScrollPage
SendToプロパティで指定されるウィンドウのクライアント領域の長さをスクロール情報のPageで割った値を数値に乗じて使います。これにより、一部のウィンドウは自動でスクロール幅が求まります。
ScrollbarLen
ScrollBarプロパティで指定されるウィンドウの長さを数値にかけた値を使います。
ScrollbarLen/ScrollPage
ScrollBarプロパティで指定されるウィンドウの長さをスクロール情報のPageで割った値を数値に乗じて使います。これにより、一部のウィンドウは自動でスクロール幅が求まります。
DotAuto
スクロール情報のPageが取得できれば 1 ClientLen/ScrollPage を、取得できなければ数値に指定されたドット数を使用します。

(H|V)?ScrollStep

どのくらいの量ごとにスクロールさせるかを指定します。

実際にはもっぱらマウスホイール法によるスクロールのためのプロパティです。

マウスホイールによるスクロールは、スクロールをするのに必要なホイール量は、多くの場合 1 よりも大きな数です。一般的なマウスのホイール量は、ホイールのクリック感のあるごとに120のようです。しかしもっと細かいホイール量にすることによってより細かなスクロールをするケースがあります。一方ホイール量が小さすぎるとスクロールしない場合もあり、アプリケーション毎にほどよい値を設定する必要があります。

Dot
数値はドット数を表します
Scroll
数値はスクロール量を表します

(H|V)?Merge

Merge は厳密にはプロパティではなく、名前付きルールを参照し、定義されているプロパティを読込みます。

宣言部の中で先に定義されているプロパティが名前つきルールの中でも定義されていた場合は、他のプロパティの上書き規則と同様に上書きされます。Merge が複数ある場合、最後に指定された名前つきルールのみが有効になるのではなく、それぞれで定義されているプロパティについて上書きされていきます。

名前付きルールの名前は大文字小文字を区別します。