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 ) ) { // 省略 }
あとはてきとーに。
マウスポインタ以外にも、長方形と長方形の当たり判定つかえば、ウィンドウがあるディスプレイを求めることもできる。
当たり判定つかってるけど、もっと簡単に求められる方法とかないのかね。ないなら仕方ないけど。