K kuangwenwei Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-15 #1 想做一个不规则的控件,如Image,在Image中加载了一张不规则的图片,其中一个角没有,这个角的颜色为白色,我现在想做一个没有白色这个角的不规则控件.或第三方控件也行
S SupermanTm Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-15 #2 关键是你的“不规则的图片”把哪些区域定义为“空” 如果你有明确的几何定义方法,那么可以使用“区域/路径”API集来实现的。
Z zl4h Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-15 #3 把你那个不规则的图片做成图标 再使用“区域/路径”api
Z zl4h Unregistered / Unconfirmed GUEST, unregistred user! 2008-03-16 #4 范例: TUnregularCtrl = class(TCustomControl) protected procedure Paint; override; end; procedure TUnregularCtrl.Paint; var Region: HRGN; begin begin Path(Canvas.Handle); SetBKMode(Canvas.Handle, TRANSPARENT); ...此处绘制图形 EndPath(Canvas.Handle); Region := PathToRegion(Canvas.Handle); SetWindowRgn(Handle, Region, True); end;
范例: TUnregularCtrl = class(TCustomControl) protected procedure Paint; override; end; procedure TUnregularCtrl.Paint; var Region: HRGN; begin begin Path(Canvas.Handle); SetBKMode(Canvas.Handle, TRANSPARENT); ...此处绘制图形 EndPath(Canvas.Handle); Region := PathToRegion(Canvas.Handle); SetWindowRgn(Handle, Region, True); end;