透明窗体的实现

2012-03-18  金城  2186

一、遮罩

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上方)