1

在 Windows XP 上的 Java 应用程序 (JRE 1.5.0_12) 中,我调用了本机方法:

public native int attachImage( ... );

...它存在于 Visual C++ 6.0 .dll 中。它显示一个应用程序模式窗口。问题是,当这个窗口有焦点时,应用程序的托盘图标不响应鼠标点击。这是一个问题,因为当显示此窗口时,用户经常切换到另一个应用程序以选择要附加的图像,然后想要恢复此应用程序。

4

2 回答 2

1

您使用的是什么 GUI 包?

您应该能够在不诉诸 JNI 调用的情况下实现这一点。

例如,在 SWT 中,您可以像这样打开应用程序模式 shell:

Shell shell = new Shell(display,SWT.APPLICATION_MODAL);

对于摇摆,这将是:

dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
于 2008-11-19T23:10:58.763 回答
0

您的 attachImage 方法是否未将父窗口正确设置为您的 java 应用程序窗口?获得一个 hwnd 可能很棘手(GetForegroundWindow/etc?)但它可能是必要的吗?

另外,为什么图像部分需要是JNI?这可能会帮助我们找到一个完全避免 JNI 部分的解决方案?

于 2008-11-19T23:39:32.607 回答