マウス位置の確認

Namespace: FVIL.GDI
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public override int CheckFocusMarkPosition(
	CFviPoint mouse,
	double margin
)
Visual Basic
Public Overrides Function CheckFocusMarkPosition ( 
	mouse As CFviPoint,
	margin As Double
) As Integer

Parameters

mouse
Type: FVIL.Data..::..CFviPoint
マウスポインタの座標
margin
Type: System..::..Double
マージン (pixel単位)

Return Value

Type: Int32

引数に指定されたマウスポインタの座標が、図形上のどの位置にあるかを示す位置情報を返します。

線分を閉じる設定(Close = true)の場合は、多角形の頂点または外接矩形上で判定します。 線分を閉じない設定(Close = false)の場合は、線分上で判定します。


戻り値: (線分を閉じる設定)

多角形の頂点にある場合、点列の指標+1 を負の数にした値を返します。 例えば、六角形の場合は、-1~-6 の範囲の値が返ります。
頂点になければ外接矩形のどの位置にあるかを判定します。 外接矩形外にあれば 0 を返します。 外接矩形内にあれば、下記の値の論理和を返します。

  • FVIL.GDI.RectPosition.Left -
  • FVIL.GDI.RectPosition.Top -
  • FVIL.GDI.RectPosition.Right -
  • FVIL.GDI.RectPosition.Bottom -
  • FVIL.GDI.RectPosition.Center -

戻り値: (線分を閉じない設定)
  • 0: 図形外 -
  • 1以上: 各線分の端 -
  • -1以下: 各線分の中央 -

Remarks

線分を閉じる設定(Close = true)の場合は、 指定されたマウス位置が 外接矩形 のどの位置にあるかを判定します。

引数 mouse に指定された座標が、外接矩形の各辺の上(下図の青色部分)にあると、 該当する FVIL.GDI.RectPosition の値を返します。 全ての辺の内側に有る場合は、全ての辺の論理和(FVIL.GDI.RectPosition.ALL)を返します。 矩形の角や中心・各辺の中央では交差する辺の論理和を返します。(下図の橙色部分)

引数 margin には、マウス位置と矩形の各辺の比較を行う際の誤差範囲を指定します。 margin に 1 を指定すると、±1 画素の範囲で判定します。


線分を閉じない設定(Close = false)の場合は、 指定されたマウス位置が線分上のどの位置にあるかを判定します。 マウスポインタの位置が図形外の場合は 0 を返します。 線分の各点上にあれば、1 以上の値を返します。 線分の各点の中間にあれば、-1 以下の値を返します。

始点が 1、2点目が 2 となり、終点に向かって 1 づつ加算された値になります。 始点と2点目の中点が -1、それ以降は終点に向かって 1 づつ減算された値になります。

See Also