用RectInRegion判断看看
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
btn1: TBitBtn;
procedure FormPaint(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
RGN: HRGN;
Rect: TRect;
implementation
{$R *.dfm}
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Rectangle(10, 10, 100, 100);
Canvas.Ellipse(50, 50, 150, 150);
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
if RectInRegion(RGN, rect) then
ShowMessage('in');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RGN := CreateEllipticRgn(50, 50, 150, 150);
SetRect(Rect, 10, 10, 100, 100);
end;
end.