启用win32消息框中的关闭按钮

Enable Close button in Win 32 Message Box

本文关键字:关闭按钮 win32 消息 启用      更新时间:2023-10-16

我正在使用win32框架提供的MessageBox函数来显示Yes和No消息框。我需要保持启用关闭按钮(在右上角的X),但不幸的是,似乎只有当窗口也包含取消按钮可用。

这是真的还是有其他方法可以实现?

消息框的设计反映了平台的UX指南。在模态对话框中,如果呈现一个关闭按钮,用户需要清楚地知道该按钮会触发什么动作。平台的用户体验指南是关闭按钮执行取消操作。

所以,这就是为什么当且仅当对话框显示取消按钮时才启用关闭按钮的原因。这种设计让用户确信,当他们按下关闭按钮时,与对话框相关的操作将被取消。

在标准消息框中,API没有提供任何机制来破坏这种用户体验设计。如果您热衷于提供自己的用户体验设计,这与平台用户体验标准不同,那么您可以创建自己的对话框并使用它。一旦你创建了你自己的对话框,你就可以启用或禁用任何你喜欢的按钮。

但是,我强烈建议您不要这样做。您打算呈现一个带有是/否问题的对话框,并使用关闭按钮表示否。这与主流平台的用户体验背道而驰,会让用户感到困惑。如果取消操作没有意义,那么不要提供关闭按钮,因为关闭按钮意味着取消。