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