进入旧版 | 服务项目 | 成功案例 | 联系方式 | 过客留言 | 友情链接
   
设为首页
加入收藏
联系我们
网站首页 | 新闻资讯 | 操作系统 | 办公软件 | 网络软件 | 工具软件 | 媒体动画 | 网页制作 | 网站开发 | 程序开发 | 平面设计
Photoshop视频教程 | Word入门 | Flash入门 | JScript | VBScript | ASP | PHP | ADO | 网页特效 | 3DS MAX6.0命令 | 系统进程
您当前的位置:GOODSGY电脑学习网 -> 程序开发 -> DLEPHI -> 文章内容  
半透明窗体的制作

半透明窗体并不是Win2000的新特效,凡是用过金山词霸的同志都会发现在屏幕取词设置中有一个半透明背景的选项,这说明在Win98下是可以实现半透明窗口的。但我还是要首先谈谈在Win2000实现半透明窗体的新函数SetLayeredWindowAttributes。利用这个函数就可以轻松创建一个半透明窗体,但是利用这个函数的程序编译后在Win98下是无法运行的。 SetLayeredWindowAttributes API函数介绍如下: 函数功能:设置窗口透明颜色 参数:SetLayeredWindowAttributes( HWND hwnd, //窗口手柄 COLORREF crKey, //指定颜色值 BYTE bAlpha, //混合函数值 DWORD dwFlags //动作 参数解释: hwnd:窗口句柄。当使用CreateWindowEx函数创建窗口时,窗口由WS_EX_LAYERED指定的值创建;或者窗口已经创建后,由SetWindowLong根据WS_EX_LAYERED指定的值改变。 crKey:指向一个COLOR值,该值指定一个透明颜色值,当创建窗口时,窗口将使用该值。 bAlpha:混合函数值。该值用于描述窗口的不透明度。当bAlpha 值为0时,窗口完全透明,当bAlpha值为255时,窗口完全不透明。 dwFlags:指定动作。这个参数可以取一个或多个值。用它我们可以创建一个不规则的窗体。 SetLayeredWindowAttributes函数的API声明: SetLayeredWindowAttributes(hwnd: HWND; crKey: DWORD;bAlpha: BYTE; dwFlag: DWORD): Boolean; stdcall; ---------程序代码1: const WS_EX_LAYERED = $80000; LWA_COLORKEY = $1; LWA_ALPHA = $2; procedure TForm1.FormCreate(Sender: TObject); var l:longint; begin l :=getWindowLong(Handle, GWL_EXSTYLE); l := l Or WS_EX_LAYERED; SetWindowLong (handle, GWL_EXSTYLE, l); SetLayeredWindowAttributes(handle, 180, 120, LWA_ALPHA); end;还有一些其它的常量定义如: AC_SRC_ALPHA = $1; AC_DST_NO_PREMULT_ALPHA = $10; ULW_COLORKEY = $1; ULW_ALPHA = $2; ULW_OPAQUE = $400; 等还要参看MSDN。有些我还没有搞明白,如果哪位同志知道的话,请告诉我。 那么在Win98下又是如何实现半透明窗体的呢?其基本原理是:在窗口显示前其获取背景图然后对背景图象进行滤镜效果处理再将处理过的背景图象显示在窗口前面。 有一种方法是:首先,做出一个透明窗体,然后在窗体上添加一个Shape,将其扩展至全屏幕,将Shape的Pen的Mode属性设为PmMask,Pen的Style属性设为PsClear,最后改变Brush的Color属性即可。 因为没有API支持,Win9x下只能模拟,效果不太好,就象金山词霸的取词窗口,背景改变而窗体上还是不变。但我们可以利用Timer控件来解决窗体的刷新率和时时更新的问题。 不过听说“金山词霸的半透明窗口效果只能在带MMX指令集的处理器中才起作用”不知是真是假,由于手头没有这样的电脑,还请同志们自己验证吧。

在百度中搜索:半透明窗体的制作
在Google中搜索:半透明窗体的制作
在Yahoo中搜索:半透明窗体的制作

收藏到网摘:新浪VIVI 365key 我摘 POCO网摘 博采中心 YouNote 和讯网摘 天天收藏
[] [返回上一页] [打 印] [收 藏]
上一篇文章:怎样让程序延时
下一篇文章:监视剪贴板内容

 相关文章    最新文章
· [组图] 巧用PS仿真绘制实例 精美半透明蜡烛..
· [组图] photoshop:晶体的制作
· [组图] 用Dreamweaver做真正半透明的菜单阴..
· 半透明遮盖区域(层高级应用)
· 用css使网页图片半透明
· 半透明遮盖区域(层高级应用)
· Photoshop仿真绘制实例:精美半透明蜡烛
· Dreamweaver使用技巧--让css使网页图片..
· 让CSS使网页图片半透明
· 让css使网页图片半透明
 
· 小技巧:如何用Delphi创建快捷方式
· Delphi版模仿熊猫烧香病毒核心源码
· Delphi“判断服务器路径”与“清空日志文..
· 应用程序敏感键的实现
· 用Delphi实现远程屏幕抓取
· 用DEPHI为应用软件建立注册机制
· 利用Hook技术实现键盘监控
· Delphi编程实现Ping操作
· 通用Delphi数据库输入控件DBPanel的实现
· 用Delphi开发屏幕保护预览程序

∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
站内搜索

精彩图文
  网站导航  
操作系统 办公软件 网络软件
Vista Windows2003 WindowsXP Windows2000/NT Windows9X/ME Linux 其他 Word Excel Powerpoint Outlook 金山系列 其他 网页浏览 上传下载 联络聊天 邮件工具 服务器软件 网络辅助
工具软件 媒体动画 网页制作
系统工具 媒体工具 压缩工具 图文处理 文件管理 其他 3DMAX Authorware Director Maya 视频处理 其他 Flash Dreamweaver FireWorks FrontPage LiveMotion Golive HTML/CSS 其它
网站开发 平面设计 程序设计
ASP JSP PHP CGI JavaScript VBScript XML/SOAP Web服务器 Photoshop PhotoImpact CorelDraw Illustrator Freehand 设计欣赏 其他 VB VC .NET C/C++ DELPHI JAVA

冀ICP备05019428号
Copyright © 2004-2008 电脑学习网 Inc.All rights reserved.
TEL:13832340607
QQ:39873155
E_Mail:goodsgy(#)hotmail.com   (把(#)替换成@)
MSN:goodsgy(#)hotmail.com   (把(#)替换成@)