首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么设置Panel透明

2012-04-10 
如何设置Panel透明创建Panel 根据属性的改变来改变Panel的透明度等。谢谢[解决办法]up[解决办法]mark[解决

如何设置Panel透明
创建Panel 根据属性的改变来改变Panel的透明度等。谢谢

[解决办法]
up
[解决办法]
mark
[解决办法]
设置?没这么简单吧。
我模仿RZ里的做过。

[解决办法]
自己拓展个控件就可以了 
很简单
[解决办法]
MARK下,我也想知道
[解决办法]
http://topic.csdn.net/u/20091211/16/cfc6ceff-4b60-4f47-9331-4dec63aa6d7c.html
你可以自己扩展,支持图片显示等等....
[解决办法]
给个透明的panel控件你

Delphi(Pascal) code
unit   Glass;    interface       uses    Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,       ExtCtrls;    type       TGlassStyle   =   (           gsBlackness,   gsDstInvert,   gsMergeCopy,   gsMergePaint,   gsNotSrcCopy,           gsNotSrcErase,   gsPatCopy,   gsPatInvert,   gsPatPaint,   gsSrcAnd,           gsSrcCopy,   gsSrcErase,   gsSrcInvert,   gsSrcPaint,   gsWhiteness);           TGlass   =   class(TCustomControl)       private           FColor:   TColor;           FStyle:   TGlassStyle;           FOnPaint:   TNotifyEvent;               procedure   SetColor(Value:   TColor);           procedure   SetStyle(Value:   TGlassStyle);           procedure   CMCtl3DChanged(var   Message:   TMessage);   message   CM_CTL3DCHANGED;           procedure   WMEraseBkgnd(var   Message:   TMessage);   message   WM_ERASEBKGND;           procedure   WMWindowPosChanging(var   Message:   TWMWindowPosChanging);   message   WM_WINDOWPOSCHANGING;       protected           Buffer:   TBitmap;               procedure   CreateParams(var   Params:   TCreateParams);   override;           procedure   Paint;   override;           procedure   Resize;   override;       public           constructor   Create(AOwner:   TComponent);   override;           destructor   Destroy;   override;           property   Canvas;       published           property   Align;           property   Anchors;           property   AutoSize;           property   BiDiMode;           property   BorderWidth;           property   Color:   TColor   read   FColor   write   SetColor;           property   Ctl3D;           property   Enabled;           property   Style:   TGlassStyle   read   FStyle   write   SetStyle   default   gsSrcAnd;           property   Visible;               property   OnClick;           property   OnDblClick;           property   OnEnter;           property   OnExit;           property   OnMouseDown;           property   OnMouseMove;           property   OnMouseUp;           property   OnResize;           property   OnPaint:   TNotifyEvent   read   FOnPaint   write   FOnPaint;       end;       procedure   Register;       implementation       procedure   Register;   begin       RegisterComponents('Croco',   [TGlass]);   end;       function   GlassStyleToInt(gs:   TGlassStyle):   LongInt;   begin       case   gs   of           gsBlackness     :   Result   :=   cmBlackness;           gsDstInvert     :   Result   :=   cmDstInvert;           gsMergeCopy     :   Result   :=   cmMergeCopy;           gsMergePaint   :   Result   :=   cmMergePaint;           gsNotSrcCopy   :   Result   :=   cmNotSrcCopy;           gsNotSrcErase:   Result   :=   cmNotSrcErase;           gsPatCopy         :   Result   :=   cmPatCopy;           gsPatInvert     :   Result   :=   cmPatInvert;           gsPatPaint       :   Result   :=   cmPatPaint;           gsSrcAnd           :   Result   :=   cmSrcAnd;           gsSrcCopy         :   Result   :=   cmSrcCopy;           gsSrcErase       :   Result   :=   cmSrcErase;           gsSrcInvert     :   Result   :=   cmSrcInvert;           gsSrcPaint       :   Result   :=   cmSrcPaint;           gsWhiteness     :   Result   :=   cmWhiteness;           else                       Assert(True,   'Error   parameter   in   function   GlassStyleToInt');       end;   end;       constructor   TGlass.Create(AOwner:   TComponent);   begin       inherited   Create(AOwner);       Buffer   :=   TBitmap.Create;           ControlStyle   :=   [csAcceptsControls,   csCaptureMouse,   csClickEvents,           csDoubleClicks,   csReplicatable];       Width   :=   100;       Height   :=   100;       FStyle   :=   gsSrcAnd;       ParentCtl3d   :=   False;       Ctl3D   :=   False;       ParentColor   :=   False;       FColor   :=   clWhite;   end;       destructor   TGlass.Destroy;   begin       Buffer.Free;       inherited   Destroy;   end;       procedure   TGlass.Paint;   var       R:   TRect;       rop:   LongInt;   begin       R   :=   Rect(0,   0,   Width,   Height);       Buffer.Width   :=   Width;       Buffer.Height   :=   Height;       Buffer.Canvas.Brush.Style   :=   bsSolid;       Buffer.Canvas.Brush.Color   :=   FColor;       Buffer.Canvas.FillRect(Rect(0,   0,   Width,   Height));       rop   :=   GlassStyleToInt(FStyle);       StretchBlt(Buffer.Canvas.Handle,   0,   0,   Width,   Height,                             Canvas.Handle,   0,   0,   Width,   Height,   rop);       if   Ctl3D   then   DrawEdge(Buffer.Canvas.Handle,   R,   BDR_RAISEDINNER,   BF_RECT);       Buffer.Canvas.Pen.Mode   :=   pmCopy;       Buffer.Canvas.Pen.Style   :=   psSolid;       Canvas.Draw(0,   0,   Buffer);       if   Assigned(FOnPaint)   then   FOnPaint(Self);   end;           procedure   TGlass.SetColor(Value:   TColor);   begin       if   Value   <>   FColor   then       begin           FColor   :=   Value;           RecreateWnd;       end;   end;       procedure   TGlass.CreateParams(var   Params:   TCreateParams);   begin       inherited   CreateParams(Params);           Params.ExStyle   :=   Params.ExStyle   +   WS_EX_TRANSPARENT;   end;       procedure   TGlass.WMWindowPosChanging(var   Message:   TWMWindowPosChanging);   begin       Invalidate;           inherited;   end;       procedure   TGlass.WMEraseBkgnd(var   Message:   TMessage);   begin       Message.Result   :=   0;   end;       procedure   TGlass.Resize;   begin       Invalidate;           inherited;   end;       procedure   TGlass.CMCtl3DChanged(var   Message:   TMessage);   begin       inherited;           RecreateWnd;   end;       procedure   TGlass.SetStyle(Value:   TGlassStyle);   begin       if   Value   <>   FStyle   then       begin           FStyle   :=   Value;           RecreateWnd;       end;   end;       end. 

热点排行