我在Windows上使用无边框窗口创建应用程序.但是,由于窗口是无边框的,我没有阴影,快照,最小化动画或抖动.我环顾四周,发现没有解释如何实现这一点的网站.但是,我知道这是可能的,因为Office 2013,Visual Studio 2012和Steam都具有这些功能并且是无边界的.我专门使用QT和C++但是如果你已经为另一个窗口库解决了这个问题,我也想听听你的解决方案.无论是.并且通过areo shadow我并不是指两侧的阴影,我的意思是所有活动的本机areo windows应用程序的所有方面的发光阴影.
我有一个未修饰的JavaFX Stage,以及我自己的最小化,最大化和关闭按钮.但遗憾的是,与装饰行为相比,单击Windows 7中的任务栏图标不会自动最小化舞台.
有没有办法通过单击任务栏图标来最小化纯Java代码的未修饰阶段?如果不是,我怎么能用JNA做到这一点?
编辑: 好的,我一直试图用JNA来解决这个问题,但是在C/C++/JNA旁边做了很多,我设置它有点麻烦.如果有人帮我把各个部分放在一起,我将不胜感激.
到目前为止,这是我的代码:
public final class Utils {
static {
if (PlatformUtil.isWin7OrLater()) {
Native.register("shell32");
Native.register("user32");
}
}
// Apparently, this is the event I am after
public static final int WM_ACTIVATEAPP = 0x1C;
public static void registerMinimizeHandler(Stage stage) {
// Hacky way to get a pointer to JavaFX Window
Pointer pointer = getWindowPointer(stage);
WinDef.HWND hwnd = new WinDef.HWND(pointer);
// Here's my minimize/activate handler
WinUser.WindowProc windowProc = new MinimizeHandler(stage);
Pointer magicPointer = ... set this to point …Run Code Online (Sandbox Code Playgroud) 最近我(主要是出于好奇)做了一个无边界的表格。制作我自己的标题栏,包括标题和三个按钮(最小化、最大化和关闭),就像每个普通的 Windows 程序一样。我还为这些按钮制作了代码(只需询问您是否想查看代码)。
但是,我注意到没有动画。我的意思是,例如,如果我单击最小化按钮,则没有动画,程序会立即消失(它没有关闭,按钮起作用,但没有动画)。这在所有情况下都会发生:当我打开程序时,它会立即出现,当我关闭它时,它会立即消失。
是否有某种方法可以使用标准 Windows 程序使用的这些动画?