制作椭圆的问题

喝口水 2009-10-24 09:14:04
procedure TChessMan.DrawChessMan;
begin
fkrgn:=CreateEllipticRgn(0,0,width,height);
try
if fkrgn<>0 then
begin
SelectObject(Canvas.Handle, fkrgn);//加上后,就不显示了,去掉后正常,但达不到圆形按钮的效果
canvas.CopyRect(RECT(0,0,Width,Height),FBmp.Canvas,RECT(0,0,fbmp.Width,fbmp.Height));
end;
finally
DeleteObject(fkrgn);
end;
end;
这个函数在paint方法中调用
...全文
56 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿发伯 2009-10-25
  • 打赏
  • 举报
回复
FBmp.TransparentColor := 背景色;
FBmp.Transparent := True;
Canvas.Draw(0, 0, FBmp);
喝口水 2009-10-25
  • 打赏
  • 举报
回复
还不到24小时,来个人把分接走
喝口水 2009-10-25
  • 打赏
  • 举报
回复
自已给自己结贴
喝口水 2009-10-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dqlihb 的回复:]
看不懂了,所以不要分
[/Quote]
看不懂不要紧,来者有分
dqlihb 2009-10-25
  • 打赏
  • 举报
回复
看不懂了,所以不要分
阿呆_ 2009-10-25
  • 打赏
  • 举报
回复
试试用GetDCOrgEx()获取DC真正的Origin点, 然后OffsetRgn()调整你region的坐标, 最后再SelectObject()

顺便说一句, 似乎剪切DC应该用SelectClipRgn吧?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧