java - 最小化动画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);
解决方案
推荐阅读
- datetime - 根据当前语言格式化日期时间
- android - Android Studio 3.4 Android Wear SDK 22
- api - 如何将任何 API 密钥添加到 Flutter 应用程序中
- sql - Amazon Redshift 错误 - 错误:0A000:Redshift 表不支持指定的类型或函数(每条 INFO 消息一个)
- apache-spark - Spark如何根据条件合并两列
- sql - SQL - 如何跨行旋转和组合数据
- flutter - Flutter Json 单例数据库
- bash - 在 macOS shell 脚本上转义空格
- java - 如何为具有多个可调用语句的 Executor 服务编写 Junit 测试用例
- c# - var 与其他关键字有何不同?