如何在C ++中的MessageBox上获取用户输入?

时间:2014-04-22 14:26:25

标签: c++ winapi messagebox

我有一个关于C ++的应用程序(在Windows API上),我要求用户使用MessageBox批准任务。但是,由于它是一个有点明智的任务而没有人阅读消息,我想将其更改为有一个输入框和用户类型"我同意"。

有人知道一个简单的方法吗?我找到了可以做到的DialogBoxParam(),但它对我的需求过于苛刻,你能想到更简单的东西(或者使用它的简单方法)吗?

我发现Prompting a user with an input box? [C++]与我的问题非常相似,但对我来说没有令人满意的答案(使用另一个lib不是一个选项)。

1 个答案:

答案 0 :(得分:1)

您必须为此编写自己的对话框。 MessageBox和相关API不提供此类功能。您可以使用任务对话框API(在Vista中引入)显示一个对话框,其中包含一个具有自定义标题的按钮。这可能比普通的MessageBox稍微好一点,因为它有一组有限的按钮。

我对你在任何情况下想要达到的目标都有点愤世嫉俗。如果您强制用户键入我同意,他们将忽略对话框的内容并键入您要求他们键入的内容。

您的输入对话框和标准按钮按下对话框之间的结果差异在于用户需要更长的时间才能通过对话框,并且不喜欢您的软件,但仍然没有阅读对话框的内容。换句话说,通过这样做你唯一能做的就是阻止用户。

在某些时候,您必须接受用户对其操作负责。如果你给他们一个有用的信息并且他们选择忽略它,那么最终就是在他们身上。