• --:)欢迎访问锋网源码(:--
  • 首页
  • RSS订阅
  • 常用软件
  • 网页模板
  • 网站运作
  • 锋网学院
  • 繁體中文

  • 学院首页
  • 新闻资讯
  • 网站运营
  • 网站开发
  • 美工设计
  • 数据库类
  • 服务器类
  • 网络应用
  • 操作系统
  • 软件教学
编程开发   认证考试   网络安全   文章搜索: 高级搜索
会员登录/控制面版 您的位置: 学院首页 >> 编程开发 >> Delphi >> 文章内容
 

精彩推荐

 
 

本类推荐文章

 
 

本类阅读排行

  • 用Delphi编写DelTree程序
  • 远程控制篇:模拟按键
  • DELPHI中动态调用dll
  • 远程控制篇:通过IP地址得到..
  • 直接访问WebBrowser控件中的..
  • 在delphi把字符串分割成一维..
  • dbgrideh如何实现点击标题排..
  • INI文件的读写
  • Delphi字符串函数大全
  • 远程控制篇:服务端程序的隐..
  • 用Delphi制作中国式报表
  • 在delphi字符中包括单引号('..
  • 用DEPHI为应用软件建立注册机..
  • 怎样让程序延时
  • 压缩图像文件并转换成BMP格式..
  • 一个四舍五入函数
  • 创建Borland风格的漂浮式窗口..
  • 从当前的浏览器取得当前URL
  • fileStream
  • 获得Memo、RichEdit的光标位..
 
 

半透明窗体的制作

  • 日期:2007-10-21     人气:     出处:     作者:
  • 字体大小:
  • 小
  • 中
  • 大

半透明窗体并不是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指令集的处理器中才起作用”不知是真是假,由于手头没有这样的电脑,还请同志们自己验证吧。

相关文章
  • QQ帮你突破网吧硬盘访问限制
  • 局域网内盗用IP的安全问题
  • 邮件安全攻略:只要糖衣不要炮弹
  • 手机病毒的分类及其防范措施
  • 如何防止黒客远程盗取QQ密码
  • 始料未及,谁在控制电脑重新启动
  • 网络常见木马的手工清除方法
  • 魔高一尺 道高一丈
  • 防火墙日志记录让蠕虫病毒无处可逃
  • 提防他人动用电脑另有妙招
相关软件

  • 网友评论:
  • 查看所有评论
  • 我要发表评论
 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 加入收藏 | 帮助中心 |

Copyright © 2006-2007 fwvv.net  程序支持:木翼  皖ICP备06004916号  

感谢:点击网络 联网科技 天盈信息 中国E速网 59互联  提供服务器及带宽赞助