在 JPanel 中嵌入 HWND(窗口句柄)

发布于 2024-10-14 14:29:25 字数 502 浏览 8 评论 0原文

我正在尝试在 JPanel 中嵌入 HWND(窗口句柄)。

实际上,我可以将 HWND 嵌入到 JFrame 中,但嵌入的窗口始终位于其他组件的顶部,我无法移动它。如果尝试删除 JFrame 的所有子组件,HWND 仍保留在那里。 HWND 似乎是在 JFrame 之上绘制的,而不是作为子元素之一。

要将 HWND 嵌入到 JPanel 中,我通过 jna 使用 User32:

User32.SetParent(iage.getRenderHwnd(), (int) getGUIHwnd(j));

我用它来获取 JFrame 的 HWND:

j.getPeer() != null ? ((WComponentPeer) j.getPeer()).getHWnd(): 0;

有没有办法将 HWND 嵌入到 JPanel 中或将其添加到其他组件中,以便我可以像这样定位它我想在我的用户界面中吗?

谢谢

I am trying to embed a HWND (Window Handle) in a JPanel.

Actually, I can embed my HWND into a JFrame, but the embedded window alway stay on top of the other component and I can't move it. If a try to remove all the child component of my JFrame, the HWND stay there. The HWND seems to be paint on top of the JFrame and not as one of is child.

To embed the HWND into the JPanel I use User32 through jna:

User32.SetParent(iage.getRenderHwnd(), (int) getGUIHwnd(j));

And I use this to get the HWND of my JFrame:

j.getPeer() != null ? ((WComponentPeer) j.getPeer()).getHWnd(): 0;

Is there a way to embed a HWND into a JPanel or to add it into an other component so I can position it like I wan in my UI?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

卷耳 2024-10-21 14:29:25

JPanel 是轻量级组件(它们没有真正的本机对等体)。即他们已经使用了(J)框架的句柄。看看java.awt.Canvas。

JPanels are lightweighted components (they have no real native peer). i.e. they use already the handle of the (J)Frame. Look at java.awt.Canvas.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文