2010年6月22日火曜日14:37:00
マウスポインタがどのディスプレイ上にあるのか メモメモ...φ(._.*)y-。o0
マウスポインタがマルチディスプレイ上にて、どのディスプレイにあるのかを求める。当たり判定をつかって求める。長方形と点の当たり判定。
/// <summary>
/// 長方形と点の当たり判定;
/// 境界線も含める
/// </summary>
/// <param name="rectangle_point">長方形の左上の角の位置</param>
/// <param name="rectangle_size">長方形のサイズ</param>
/// <param name="main_point">点の位置</param>
/// <returns>長方形と点が接触しているかどうか</returns>
private bool DetectCollisionRectangle ( Point rectangle_point, Size rectangle_size, Point main_point )
{
if ( rectangle_point.X <= main_point.X
&& rectangle_point.Y <= main_point.Y
&& rectangle_point.X + rectangle_size.Width >= main_point.X
&& rectangle_point.Y + rectangle_size.Height >= main_point.Y )
return true;
return false;
}
ディスプレイの位置とサイズを長方形とする。
if ( DetectCollisionRectangle(
Screen.AllScreens[i].Bounds.Location,
Screen.AllScreens[i].Bounds.Size,
Cursor.Position ) )
{
// 省略
}
あとはてきとーに。
マウスポインタ以外にも、長方形と長方形の当たり判定つかえば、ウィンドウがあるディスプレイを求めることもできる。
当たり判定つかってるけど、もっと簡単に求められる方法とかないのかね。ないなら仕方ないけど。
