作爲一個寵物項目,我一直在玩將Aero Glass效果集成到我的SWT應用程序中的概念。 Łukasz Milewski has an excellent blog post解釋這是如何實現的,這幾乎歸結爲:結合Aero Glass效果和SWT
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FormLayout());
final MARGINS margins = new MARGINS();
margins.cyTopHeight = -1;
final Composite c = new Composite(shell, SWT.NORMAL);
c.setBackground(new Color(shell.getDisplay(), new RGB(0, 0, 0)));
final FormData fd = new FormData();
fd.top = new FormAttachment(0, 0);
fd.left = new FormAttachment(0, 0);
fd.right = new FormAttachment(100, 0);
fd.bottom = new FormAttachment(100, 0);
c.setLayoutData(fd);
OS.DwmExtendFrameIntoClientArea(shell.handle, margins);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
這工作很漂亮,直到您要添加控件。這導致黑其餘透明:
A follow-up post演示瞭如何做到這一點,太,但需要修改的SWT庫。 (至少,我相信如此,因爲私人SWT功能被@Override
覆蓋。)
如何避免控件變爲透明?更好:我如何從透明度中受益(例如將圖像放置在其上like so),但是以合理的方式使用它?
你可以添加生活鏈接嗎? – Supuhstar 2012-10-05 04:21:58