首页 > 解决方案 > 最小化动画JavaFX未装饰舞台

问题描述

我试图在 javafx 应用程序中重新创建我自己的控制栏,所以我将窗口设置为 UNDECORATED 以便能够实现我自己的按钮,但是随着原始控制栏的删除,任何窗口动画都会被删除,例如你从最小化窗口或最大化它获得。我使用 jna 正确地重新植入了 reduce 行为,但仍然没有动画。

我尝试通过https://docs.microsoft.com/fr-fr/windows/desktop/winmsg/window-styles中的其他值更改 newStyle 值,但如果动画返回,也意味着原始控制栏返回.

    Parent root = FXMLLoader.load(getClass().getResource("/fxml/test.fxml"));
    root.setId("pane");
    stage = primaryStage;
    stage.setTitle("test");
    stage.initStyle(StageStyle.UNDECORATED);
    scene = new Scene(root);
    stage.setScene(scene);
    stage.show();
    long lhwnd = com.sun.glass.ui.Window.getWindows().get(0).getNativeWindow();
    Pointer lpVoid = new Pointer(lhwnd);
    HWND hwnd = new HWND(lpVoid);
    final User32 user32 = User32.INSTANCE;
    int oldStyle = user32.GetWindowLong(hwnd, GWL_STYLE);
    int newStyle = oldStyle | 0x00020000;//WS_MINIMIZEBOX
    user32.SetWindowLong(hwnd, GWL_STYLE, newStyle);

标签: javajavafxjna

解决方案


推荐阅读