透明窗体的实现
2012-03-18 金城 2207
一、遮罩
C# DELPHI 等IDE提供了基本的遮罩原理的透明支持,具体实现如下:
C#中设置窗体的 BackColor 和 TransparencyKey 为同一个值
private voidForm1_Load(objectsender,EventArgse){
BackColor =Color.FromArgb(0,0,1);
TransparencyKey = BackColor;
}
DELPHI中
procedureTForm1.FormCreate(Sender:TObject);
begin
TransparentColor=True;
Color:= clFuchsia;
TransparentColorValue=clFuchsia;
end;
二、GDI+/UpdateLayerdWindow (WinAPI)
可以使用PNG做背景,支持Alpha透明,效果超酷【图例】
不过本法有个缺点,就是普通控件无法显示了,解决方法 可以重画(就是所谓的DirectUI技术),也可以使用重叠窗体(Form2用遮罩法透明放到Form1上方)
