调整 SunAwtFrame 的大小
有一个使用 AWT 用 Java 编写的应用程序。我想通过外部程序调整其窗口大小。我的操作系统是Windows XP。实际上这个应用程序是一个在线扑克客户端。
这些窗口属于“SunAwtFrame”类,因此我查找这些窗口并对它们调用 MoveWindow/SetWindowPos。结果不是我所期望的:
一个问题http://savepic.net/1331700.png
如您所见,窗口确实调整了大小,但内容没有调整。手动调整大小时,它会缩放,我希望在这里有相同的行为。 可能需要一些额外的操作才能使 AWT 窗口了解它的大小已调整。 我该如何解决这个问题?
There is an application written in Java using AWT. And I want to resize its windows by an external program. My OS is Windows XP. Actually this application is an online poker client.
The windows are of "SunAwtFrame" class, so I look for those windows and call MoveWindow/SetWindowPos on them. The result is not the one I expect:
a problem http://savepic.net/1331700.png
As you see, the window did resize, but the content did not. While resizing manually it scales, and I want the same behavior here.
Probably, some additional action are needed to make AWT windows understand it was resized.
How can I fix the problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议这样做:
使用 Spy++(作为 Microsoft 中的工具提供)
Visual Studio)来过滤发送到 SunAwtFrame 窗口的消息。
手动调整窗口大小。
找出在调整大小期间哪些消息被发送到窗口。使用
MoveWindow/SetWindowPos 和/或在调整大小后发送这些消息。
看一下函数 InvalidateRect 和 UpdateWindow。
I recommend doing this:
Use Spy++ (available as a tool in Microsoft
Visual Studio) to filter messages sent to the SunAwtFrame window.
Resize window manually.
Figure out which messages are sent to the window during resizing. Use
MoveWindow/SetWindowPos and/or send those messages after you resize.
Take a look at functions InvalidateRect and UpdateWindow.