方法和判断点在矩形中使用的PtInRegion一样,hi.baidu.com/shukunzhang/blog/item/22c91582ed4890b76c811954.html
只是创建HRGN时使用不同的函数既可。
TRGNType = (rtRectangle, rtRoundRectangle, rtElliptic);
{-------------------------------------------------------------------------------
过程名: BuilderRGN 根据图形类型创建其对应的HRGN
作者: Zhangsk
日期: 2009.04.07
参数: const R: TRect; const rt: TRGNType
返回值: HRGN
-------------------------------------------------------------------------------}
function BuilderRGN(const R: TRect; const rt: TRGNType): HRGN;
begin
case rt of
rtRectangle: Result := CreateRectRgnIndirect(R);
rtRoundRectangle: Result := CreateRoundRectRgn(r.Left,
r.Top,
r.Right,
r.Bottom,
(r.Right - r.Left) div 2,
(r.Top - r.Bottom) div 2);
rtElliptic: Result := CreateEllipticRgnIndirect(R);
end;
end;