【问题标题】:How to get a user input on a MessageBox on C++?如何在 C++ 中的 MessageBox 上获取用户输入?
【发布时间】:2023-04-08 08:31:01
【问题描述】:

我有一个 C++ 应用程序(在 Windows API 上),我要求用户使用 MessageBox 批准一项任务。但是,由于这是一项明智的任务并且没有人阅读该消息,因此我想将其更改为具有输入框并且用户键入“我同意”。

有没有人知道一个简单的方法来做到这一点?我发现 DialogBoxParam() 可以做到这一点,但它对我的需求来说太过分了,你能想出更简单的东西(或使用它的简单方法)吗?

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

【问题讨论】:

  • MessageBox 无法做到这一点。您需要制作自己的对话框。
  • WinAPI 非常简单,旨在让您从头开始创建您想要的东西。另外顺便说一句,从用户体验的角度来看,这个想法是可怕的,它只会惹恼用户。
  • “你确定”对话框更标准。

标签: c++ winapi messagebox


【解决方案1】:

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

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

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

在某些时候,您必须接受用户为自己的行为负责。如果你给他们一个有用的信息,而他们选择忽略它,那最终就是他们了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多