给你答案!
procedure TForm1.Button1Click(Sender: TObject);
var
PolyPoint :array [0..3] of TPoint;
Number :integer;
PPts
Point;
PTypes
ByteArray;
pathpoints :array [0..1000] of TPoint;
PathTypes :array [0..1000] of byte;
begin
PolyPoint[0] :=Point(30,30);
PolyPoint[1] :=Point(80,80);
PolyPoint[2] :=Point(150,15);
PolyPoint[3] :=Point(220,100);
Canvas.PolyBezier(PolyPoint);
BeginPath(Canvas.Handle);
Canvas.PolyBezier(PolyPoint);
EndPath(Canvas.Handle);
if FlattenPath(Canvas.Handle)then
begin
PPts := nil;
PTypes := nil;
Number := GetPath(Canvas.Handle,PPts,PTypes,0);
Number := GetPath(Canvas.Handle,PathPoints,PathTypes,Number);
end;
ShowMessage(IntToStr(Number));
end;
这里的PathPoints为Bezier曲线上的点,你比较点击的点与这些点的距离,
就可以大致判断是否点选了该Bezier曲线!