老妖 ccrun 请进,有关GDI 问题

my_success 2007-10-19 01:43:30
老妖你好。我在你的网站上看到了GDI实现透明显示的文章,获益不少。但有个问题是,如果我在Form上加上其他控件,如BUTTON,MEMO,...,则这些控件运行时都显示不出来,请问这应该如何处理?
...全文
258 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
my_success 2007-12-10
  • 打赏
  • 举报
回复
谢谢各位,没有更好的方法,给分了。
My_Love 2007-11-02
  • 打赏
  • 举报
回复
顶安吉儿
constantine 2007-11-02
  • 打赏
  • 举报
回复
想到一种方法,不知道行不行。
1.首先就是做一个form(form1),通过GDI+处理png,让他透明,这个看cc的代码。
2.在做一个form(form2),去掉标题等,在上面放你的控件,并调整好大小,设置TransparentColor=true,TransparentColorValue=窗体的Color,最好这个color都设置为比较特殊的。
3.最后把form2 new出来后放到form1上。
IvanLin1986 2007-11-01
  • 打赏
  • 举报
回复
学到了!!
我不懂电脑 2007-11-01
  • 打赏
  • 举报
回复
可以用TForm的TransparentColor让窗口透明,控件只要颜色不同,就会显示。
ccrun.com 2007-11-01
  • 打赏
  • 举报
回复
景仰小剪子。呵呵。
i_love_pc 2007-11-01
  • 打赏
  • 举报
回复
楼上的方法不错,收藏!
loakia 2007-11-01
  • 打赏
  • 举报
回复
很久没来了......
lihongbin33 2007-11-01
  • 打赏
  • 举报
回复
我无法理解..
jinjazz 2007-11-01
  • 打赏
  • 举报
回复
代码参考
http://blog.csdn.net/jinjazz/archive/2007/11/01/1860437.aspx
jinjazz 2007-11-01
  • 打赏
  • 举报
回复


因为用了WS_EX_LAYERED后当前窗体再也不会处理paint事件,所以,控件是一辈子也不会出来的,但是这个控件确实存在,而且可以响应事件

对于按钮,完全可以自己画两个图片然后盖在button上面,通过处理button的enter和leave消息来切换者两个图片来表达按钮状态

对于输入框..这个可以用一个让任何人看了都生气地办法,那就是....两个窗体,的确别人就是这么做的

可以用一个空心窗体只显示该显示的控件,然后盖在你的半透明窗体上面,并处理半透明窗体的move事件,让另外一个窗体同步移动或者做其它事情

效果如下:

jinjazz 2007-11-01
  • 打赏
  • 举报
回复
楼上的理解错误
crescent_star 2007-10-31
  • 打赏
  • 举报
回复
这个...我是来jf的...
ccrun.com 2007-10-30
  • 打赏
  • 举报
回复
不好意思最近很忙,来的较少. 当窗体上用了透明图片以后,的确不能再用一般的VCL组件了.我暂时也没有什么好的方法,当初作那个Demo只是一时兴起,后来没有再研究.不过我考虑应该可以使用类似DirectUI的技术来实现.

13,824

社区成员

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

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