在Win 32消息框中启用“关闭”按钮

时间:2015-10-12 08:51:25

标签: c++ winapi

我正在使用Win 32框架提供的MessageBox功能来显示是和否消息框。我需要保持启用关闭按钮(右上角的X),但遗憾的是,只有当窗口还包含取消按钮时才可用。

是真的还是有其他方法可以达到这个目的?

1 个答案:

答案 0 :(得分:0)

消息框设计反映了平台UX准则。在模式对话框中,如果您提供关闭按钮,则用户需要清楚地期望该按钮引发的操作。平台UX指南是关闭按钮执行取消操作。

因此,当且仅当对话框显示取消按钮时,才会启用关闭按钮。此设计允许用户确信当他们按下关闭按钮时,与对话框相关的操作将被取消。

API没有提供在标准消息框中破坏此UX设计的机制。如果您希望提供自己的UX设计,这与UX平台标准不同,那么您可以创建自己的对话框并使用它。创建自己的对话框后,您就可以启用或禁用任何按钮。

但是,我建议你不要这样做。你打算提出一个带有是/否问题的对话框,并使用关闭按钮来表示否。这与普遍的平台用户体验相反,并且会让用户感到困惑。如果取消操作没有意义,则不要提供关闭按钮,因为关闭按钮意味着取消。