最小化动画JavaFX未经修饰的舞台

时间:2019-01-27 18:00:19

标签: java javafx jna

我试图在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);

0 个答案:

没有答案