Delphi 如何制作带阴影窗体
来源:互联网 发布:猎头 候选人推荐算法 编辑:程序博客网 时间:2024/06/05 22:44
转自
//从文件加载PNGprocedure YXForm_FromFile(AForm : TForm; AFileName : String);//从资源加载PNGprocedure YXForm_FromResource(AForm : TForm; ResName : String; ResType : PWideChar; Instance : HINST = 0);//从图像对象加载procedure YXForm_FromGraphic(AForm : TForm; AGraphic : TGraphic);implementationprocedure YXForm_FromFile(AForm : TForm; AFileName : String);varwic : TWICImage;beginwic := TWICImage.Create;wic.LoadFromFile(AFileName);YXForm_FromGraphic(AForm, wic);wic.Free;end;procedure YXForm_FromResource(AForm : TForm; ResName : String;ResType : PWideChar; Instance : HINST);varwic : TWICImage;r : TResourceStream;beginif Instance = 0 thenInstance := HInstance;r := TResourceStream.Create(Instance, ResName, ResType);wic := TWICImage.Create;wic.LoadFromStream(r);YXForm_FromGraphic(AForm, wic);wic.Free;r.Free;end;procedure YXForm_FromGraphic(AForm : TForm; AGraphic : TGraphic);varptDst, ptSrc: TPoint;Size: TSize;BlendFunction: TBlendFunction;bmp : TBitmap;beginbmp := TBitmap.Create;bmp.Assign(AGraphic);ptDst := Point(AForm.Left, AForm.Top);ptSrc := Point(0, 0);Size.cx := AGraphic.Width;Size.cy := AGraphic.Height;BlendFunction.BlendOp := AC_SRC_OVER;BlendFunction.BlendFlags := 0;BlendFunction.SourceConstantAlpha := $FF; // 透明度BlendFunction.AlphaFormat := AC_SRC_ALPHA;SetWindowLong(AForm.Handle, GWL_EXSTYLE, GetWindowLong(AForm.Handle,GWL_EXSTYLE) or WS_EX_LAYERED);UpdateLayeredWindow(AForm.Handle,AForm.Canvas.Handle,@ptDst,@Size,bmp.Canvas.Handle,@ptSrc,0,@BlendFunction,ULW_ALPHA);bmp.Free();end;end.//想要用的时候很简单,举个例子:ff := TForm2.Create(Self);YXForm_FromFile(ff, ‘c:/a.png’);ff.Show;
0 0
- Delphi 如何制作带阴影窗体
- 如何制作一个带启动屏幕的窗体
- 实例:如何制作一个带启动屏幕的窗体
- 带阴影的浮动窗体的实现
- 如何制作透明窗体
- 如何制作透明窗体
- Delphi如何设置主窗体
- delphi XE制作异形窗体和窗体透明度
- HTMLayout:制作无边框带阴影的窗口
- Delphi如何从非主窗体启动
- 如何在delphi中克隆窗体
- Delphi生成即调用带窗体的Dll
- 用delphi制作由小到大的动画窗体!
- Delphi 根据图片或者文字制作特殊的窗体
- 界面编程:如何制作透明窗体
- ArcGIS实用制图技巧——如何制作“阴影”效果
- 如何修改Delphi自带控件
- 如何调试delphi自带的源代码
- 《Windows API》获取文件属性数据
- RecyclerView的进阶使用,一个LayoutManger下添加多种布局
- 为什么寄存器比内存快?
- 55-003-1 HTML5实现文字标题列表显示--鼠标经过时文字动态阴影展示
- centos7防火墙使用(firewalld)
- Delphi 如何制作带阴影窗体
- Linux系统上安装mysql5.7.12
- 你的OA,坚持应用了吗?
- C++指针与地址引用
- Tomcat内存配置、参数说明
- boslicense 绕开bos的license检查
- 使用Sublime Text搭建python调试环境
- iOS Block循环引用检测
- 【Linux开发】内核模块简介