消息框中的“不再显示此消息”选项

3

在C++/MFC中,显示一个带有“不再显示”选项的消息框最简单的方法是什么?

在我的情况下,我只想要一个简单的MB_OK消息框(一个确定按钮)。

5个回答

14

每天学点新东西!可惜他们警告你该函数可能不会在新版本的Windows中继续使用(例如没有提到Vista)。 - Mark Ransom
@Mark 这个函数可以使用TaskDialog API轻松重新实现。 - Shay Erlichmen
是的,那正是我想要的! - djeidot
警告:这适用于我,因为我想要一个简单的 MB_OK 消息框。如果消息框有多个按钮,则可能会更加复杂。文档告诉我们不要混淆“不显示此对话框”和“记住此答案”。 - djeidot
这似乎只适用于Windows XP,并不保证在Vista及以后的版本中存在。 - v.oddou

6

5

可能只需使用标签、按钮和复选框在窗口中子类化一个 CDialog。

如果用户勾选了该框,则将此信息保存在配置文件中,在每次运行应用程序时加载该文件。然后,在调用 DoModal() 方法之前,检查用户是否选择了不同意。


您也可以考虑在注册表中(HKEY_CURRENT_USER下)设置一个标志,以忽略当前Windows用户的对话框。 - John Sibly
那可能会很麻烦。我在寻找框架中已经存在的东西。 - djeidot
在检索到选项值后,我知道该怎么处理它,我正在考虑使用@John Sibly的建议。 - djeidot

2
感谢所有的回答。虽然最终我选择了@Stefan的答案,因为它是最简单的方法。
在看到Stefan的答案之前,我使用了XMessageBox。它有很多我不想要的选项,但它在所有系统上都可以工作,值得一试。您可以在http://www.codeproject.com/KB/dialog/xmessagebox.aspx上找到XMessageBox。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接