由shape控件得到Rgn(2000/11/21 三金 版权所有
如有问题,请参考VCL库shape组件源代码 function GetShapeRgn(shape:TShape):HRgn; var X, Y, W, H, S: Integer; ret:HRgn; begin result:=0; X :=shape.left+shape.Pen.Width div 2; Y :=shape.top+shape.Pen.Width div 2 ; W :=shape.Width- shape.Pen.Width + 1; H :=shape.Height-shape.Pen.Width + 1; if shape.Pen.Width = 0 then begin Dec(W); Dec(H); end; if W < H then S := W else S := H; if shape.Shape in [stSquare, stRoundSquare, stCircle] then begin Inc(X, (W - S) div 2); //得到新的X值 Inc(Y, (H - S) div 2); //得到新的Y值 W := S; H := S; end; case shape.Shape of stRectangle, stSquare: begin ret:=CreateRectRgn(X, Y, X + W, Y + H); if ret=null then result:=0 else result:=ret; end; stRoundRect, stRoundSquare: begin ret:=CreateRoundRectRgn(X, Y, X + W, Y + H, S div 4, S div 4); if ret=null then result:=0 else result:=ret; end; stCircle, stEllipse: begin ret:=CreateEllipticRgn(X, Y, X + W, Y + H); if ret=null then result:=0 else result:=ret; end; end; end; 更好更多文章尽在三金主页-天铭心草堂
http://vip.6to23.com/tianmingxin
[Delphi程序]OCX中得到IE传递的参数(2002/5/30 三金 版权所有) [Delphi程序]EXE工程和OCX工程的转化(2002/5/30 三金 版权所有…
|