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

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

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

呵呵,我这是异想天开么?希望高手指点!!
...全文
185 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
不简单那

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧