|
|
||||
Tips > |
|||||
点が長方形の内側か PtInRect でチェック |
更新 : 2009/08/05 |
||||
|
|
||
解説: 任意の点が、指定する長方形の内側にあるかどうか調べるにはどうすればよいでしょう? Win32API の PtInRect 関数を使うと調べられます。 BOOL PtInRect( CONST RECT *lprc, // 長方形 POINT pt // 点 ); 長方形の左辺と上辺は、長方形の内側、右辺と下辺は、外側と見なされます。 使用例: 以下の例では、設定した点が長方形の内側にあるかどうかチェックしています。 コンポーネントは、Button を適当に配置するだけです。 OnClick イベントハンドラで任意の点を設定しています。 PtInRect 関数にエリアを指定して、点がその内側にあるかどうか調べています。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // 点を設定 int x = 30; int y = 30; // 指定エリア RECT rect; rect.left = 0; rect.top = 0; rect.right = 20; rect.bottom = 10; if (!PtInRect(&rect, Point(x, y))) ShowMessage("座標値が範囲外です。"); } //------------------------------------------------------------------- |