• 全部
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
  • 问答

这个问题是能够实现,还是我异想天开?

gzc 2001-08-28 09:48:17
我在Form上放置了一个Image,一个Timer,将Form的类型设置为无标题窗体,并在Image中装入一幅图像,在程序运行时用Timer控制Form在Windoqws桌面上的移动。

此时,Image中的图像覆盖了其它的窗体,包括Windows桌面上的图标,很是不爽,不知道有没有办法,让这个图像不覆盖其它窗体,而让被覆盖的部分变成阴影色,看起来象Image是透明的。

呵呵,我这是异想天开么?希望高手指点!!
...全文
155 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gloom 2001-08-29
xuexi
回复
CityHost 2001-08-29
同意,提醒一下免费VCD?笑话!去了就上当。
回复
gqxs 2001-08-29
学习
回复
紫去秋来 2001-08-29
我今天发现有地方在送免费VCD,以下是地址,去看看吧:

http://vcd.free-8.com/ref.asp?rid=130752
(标题:免费VCD天天大赠送活动)

回复
gzc 2001-08-29
是是,这就给分!
回复
jarjarbink 2001-08-29
当然可以了。如果你使用的是Window98那么就如 Raptor(猛禽) 所说,非常麻烦!而如果你使用的是Windows2000就很简单了!BCB5也完全支持windows2000。因为Windows2000支持Layered Windows,一种alpha半透明窗口。你需要用SetWindowLong设置Form的属性是Layered Window,然后用

SetLayeredWindowAttributes(
HWND hwnd,
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);

来设置透明效果,其中hwnd是窗口句柄(Form->Handle),crKey是透明的颜色,如果dwFlags包含了#define LWA_COLORKEY 0x00000001,就可以让crKey指定的颜色变成透明。bAlpha是Alpha半透明的百分比,dwFlags中包含#define LWA_ALPHA 0x00000002的话,就可以用它指定半透明效果,0=0%(全透明,隐藏) 255=100%(不透明)。
此外还可以用AnimateWindow让窗口淡入淡出。你可以去查最新的MSDN,或者直接看winuser.h的头文件里的函数定义,很简单的。(SetLayeredWindowAttribute在BCB的Win32API帮助里没有,因为那个帮助太老了)
回复
jarjarbink 2001-08-29
别唉了,快给分呀:)然后赶紧去装个2000或者XP算了
回复
gzc 2001-08-29
惨呼!我的系统偏偏是Windows98。唉......
回复
三杯倒 2001-08-28
难度大
回复
猛禽 2001-08-28
可以实现,比较麻烦,要先保存图像下面的东东,再将图像按位与下面的图像作一些运算,我以前写过一个半透明的东东,不过现在不知道弄到哪里去了。^_^
回复
gzc 2001-08-28
呵呵,难度大吗?这才有意思啊!
谁能帮忙解决,我再加分。

回复
SCUM 2001-08-28
难度大 有挑战性
回复
knf 2001-08-28
这个比较复杂,涉及到动画,需要mask图片,用那个叫bit什么的API,具体的看看动画编程的书吧!
回复
gzc 2001-08-28
TO sundayboys(sunboy),这样好像不行的,还有其它方法吗?
回复
sundayboys 2001-08-28
设置image的transparent为true
回复
little_f 2001-08-28
不简单那
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2001-08-28 09:48
社区公告
暂无公告