SWT MessageBox关闭按钮被禁用

时间:2015-12-01 08:36:44

标签: java swt messagebox

我正在使用Java SWT作为应用程序UI。当我使用SWT MessageBox来询问用户问题时,我使用:

MessageBox messageBox = new MessageBox(new Shell(Display.getCurrent()), SWT.YES | SWT.NO | SWT.ICON_QUESTION);

但是当对话框打开时,关闭(红色X按钮)被禁用。我该怎么做才能启用它?

1 个答案:

答案 0 :(得分:3)

我很抱歉,但这是不可能的。从查看Java SWT的源代码我调查:
src / org / eclipse / swt / widgets / MessageBox.java第206行:

OS.MessageBox (hwndOwner, buffer1, buffer2, bits);

使用JNI运行本机C代码: src / os.c第8939行:

rc = (jint)MessageBoxA((HWND)arg0, (LPSTR)lparg1, (LPSTR)lparg2, arg3);

这就是由Java SWT封装的MessageBox的真正Win32 API代码。并且不允许启用[X]按钮。你可以在这里阅读: Enable Close button in Win 32 Message Box
只有在添加SWT.CANCEL按钮时才会启用它,然后[X]的行为方式相同。