做個控制元件.
1)繼承TEdit控制元件,功能該控制元件透明,呈現背景圖的效果.
2)控制元件邊框無
uj5u.com熱心網友回復:
嘻嘻,我來說最簡單的第2個吧。borderStyle=bsNone--無邊框uj5u.com熱心網友回復:
給個鏈接,自己領悟:http://blog.csdn.net/delphiteacher/article/details/6714398uj5u.com熱心網友回復:
http://delphi.cjcsoft.net/viewthread.php?tid=43166這個好
uj5u.com熱心網友回復:
透明?設定Alphablend屬性uj5u.com熱心網友回復:
procedure TSkinEdit.DrawParentImage(Control: TControl; DC: HDC);
var
SaveIndex: Integer;
P: TPoint;
begin
if Control.Parent = nil then
Exit;
SaveIndex := SaveDC(DC);
GetViewportOrgEx(DC, P);
SetViewportOrgEx(DC, P.X - Control.Left, P.Y - Control.Top, nil);
IntersectClipRect(DC, 0, 0, Control.Parent.ClientWidth, Control.Parent.ClientHeight);
try
Control.Parent.Perform(WM_EraseBkgnd, DC, 0);
Control.Parent.Perform(WM_PrintClient, DC, prf_Client);
except
end;
RestoreDC(DC, SaveIndex);
end;
通過此方法先把控制元件背景畫到自己的DC里,然后自繪EDIT的背景,有很多三方控制元件支持透明的,看下它們的實作代碼就知道原理了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/157032.html
標籤:VCL組件開發及應用
