作为一个宠物项目,我一直在玩将Aero Glass特效整合到我的SWT应用程序中的概念。 ŁukaszMilewski有一篇出色的博客文章解释了如何完成这个工作,这可以归结为以下几点:
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))); 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(); } }
后续的post也演示了如何做到这一点,但需要修改SWT库。 (至less,我相信是这样,因为私有的SWT函数被覆盖@Override 。)
如何在Windows上安装Numpy for Python 2.7?
启用和禁用USB端口
开始C ++的问题; 不能实例化抽象类(VS中的C2259)
应用程序正在阻止Windowsclosures
在Windows中修改framebuffer
我怎样才能避免控制变得透明? 更好的是:我怎样才能从透明度中受益(例如像这样放置图像),但是以合理的方式使用它?
如何摆脱我的PC应用程序中的UAC警告
如何使用ffmpeg,这样就不需要在应用程序文件夹中包含它的dll了?
如何使用C#禁用鼠标点击事件系统?
重写的方法是“封装私有”。 为了在没有编译时错误的情况下覆盖它们,你必须把你的类放到与超类相同的包中,比如org.eclipse.swt org.eclipse.swt.widgets包。 你引用的博客最后提到了这个实现细节,所以我不知道,这真的回答你的问题。
把你的控制超出玻璃区域,或尝试使用强制背景颜色的控制。
您担心覆盖内部方法的解决方案,但您首先使用的是内部SWT类。 这似乎是一个非常hacky脆弱的方式(至少在目前的SWT实施)添加一些眼睛糖果到您的应用程序…我希望你没有这样做的生产代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。