Topic: SWT控件背景透明问题 |
Print this page |
1.SWT控件背景透明问题 | Copy to clipboard |
Posted by: Sunteya Posted on: 2005-03-30 15:23 在swing中可以通过setOpaque(true) 来使控件透明? 而在SWT中怎么设置才可以使Composite透明呢? 哪位大哥知道呀。指点一下,谢谢哈 |
2.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: Sunteya Posted on: 2005-03-30 15:58 简单的说就像 在XP下的任务管理器的TAB 灰色 和 我的电脑->属性的TAB的白色区别。 我试过SWT.NO_BACKGROUND好象不行 。 |
3.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: marsbible Posted on: 2005-03-30 16:00 奇怪,透明了不就看不见了吗,用setVisible()不久ok 反正不需要透明度 |
4.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: Sunteya Posted on: 2005-03-30 17:06 其实也不能算是透明不透明的问题了。 如果设置成setVisible的话 他上面的控件也都没有了吧。 因为在XP下 TAB是白色的背景的。而如果没有透明的话 就看不到这个白色的背景了,而只能看到灰色 |
5.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: marsbible Posted on: 2005-03-30 17:23 还真是,这个问题很有价值啊 |
6.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: skyandmusic Posted on: 2005-04-03 11:27 我不知道你是不是这个意思。。你自己copy下去试试 OS.SetWindowLong(shell.handle , OS.GWL_EXSTYLE , OS.GetWindowLong(shell.handle , OS.GWL_EXSTYLE)^0x80000); |
7.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: Sunteya Posted on: 2005-04-03 15:52 楼上的大哥不明白我的意思啊,那我就在说一下吧。 这个问题是我在Windows XP下用SWT做Tab时遇到的。 做Tab的时候,如果需要在选项卡(TabItem)上添加多个控件的话,是应该需要先把 这些控件添加到一个Composite中,然后在用TabItem的setControl(Control control) 才 行吧,因为setControl(Control control) 之支持一个控件而且也不支持Layout。 而我们知道在Windows下Composite默认的应该是灰色的背景,而把带有灰色背景的Composite添加到TabItem的中的话,当程序运行的时候由于Windows的经典式样, 出现的Tab本身就是灰色的背景,所以界面看上去很好。 但Windows XP有提供了一个XP 风格的式样,在这个式样下TAB的背景变成了白色的渐变。而原来Composite由于是使用灰色的背景的所以这就和TAB显的格格不入。 同样的问题如果用swing的话只需要对JPanel使用setOpaque(false)就可以使TAB显示 出他原来的白色渐变背景,而这在SWT下我却怎么也做不到。(也就是3楼的那个图) 同样的问题也存在在比如,对于一个想用图案做背景的控件上,放上一个Composite, 想在上面放写控件,想让这些控件显示出来。但实际上的效果却是在图案的背景上 有一个灰色的矩形区域,在这个矩形的区域上才有控件,但原本的意图是要看不到这些 灰色的Composite背景而直接看到 原本的图案背景。 原本我以为蛮简单的只要用SWT.NO_BACKGROUND就可以了,但实际上NO_BACKGROUND把 所有的背景都去掉了。或者说直接就可以看到其他程序了(就像是镂空的效果)。 我本人也是这几天刚刚开始用SWT 做东西,所以还是希望各位有经验的大哥帮忙解决下这个问题,谢谢了 |
8.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: Sunteya Posted on: 2005-04-03 15:56 发完帖才想起来skyandmusic 兄弟所说的 OS.SetWindowLong(shell.handle , OS.GWL_EXSTYLE , OS.GetWindowLong(shell.handle , OS.GWL_EXSTYLE)^0x80000); 好象可以用他来产生一个什么都看不到的窗口,但好象不可以使Composite透明,不知我说的对不对 |
9.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: yipsilon Posted on: 2005-04-03 15:58 试试这个:
|
10.Re:SWT控件背景透明问题 [Re: Sunteya] | Copy to clipboard |
Posted by: Sunteya Posted on: 2005-04-03 16:28 TO:yipsilon 这段代码产生的是一个镂空的圆环,而我需要的是一个像JPanel一样的东西 是能放到其他的JPanel上的。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |