我正在使用Java SWT作为应用程序UI。当我使用SWT MessageBox
来询问用户问题时,我使用:
MessageBox messageBox = new MessageBox(new Shell(Display.getCurrent()), SWT.YES | SWT.NO | SWT.ICON_QUESTION);
但是当对话框打开时,关闭(红色X按钮)被禁用。我该怎么做才能启用它?
答案 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]的行为方式相同。