procedure TForm1.Button2Click(Sender: TObject);
var
HCircle, HChord, HRect, HResult: HRGN;
Ps: array[0..5] of TPoint;
begin
HCircle := CreateEllipticRgn(346-127, 268-127, 346+127, 268+127); //圆HCircle
Ps[0] := Point(261, 174);
Ps[1] := Point(429, 365);
Ps[2] := Point(429, 365);
Ps[3] := Point(473, 365);
Ps[4] := Point(473, 141);
Ps[5] := Point(261, 141);
HResult := CreatePolygonRgn(Ps, Length(Ps), WINDING); //多边形HResult
HChord := CreateRectRgn(0, 0, 0, 0); //初始化半圆HChord
CombineRgn(HChord, HResult, HCircle, RGN_AND); //生成半圆HChord,HCicle与HResult交集
HRect := CreateRectRgn(261, 141, 473, 365); //半圆外接矩形HRect
CombineRgn(HResult, HRect, HChord, RGN_DIFF); //外接矩形和半圆成的区域HReslut
//Canvas.Brush.Color := clRed;
//PaintRgn(Canvas.Handle, HResult); //绘制HResult,是你要的结果吗?
end;