用输入框提示用户?[C++]

Rya*_*yan 12 c++ winapi inputbox

我的目标是只需使用弹出框询问用户输入.我搜索了很多,几乎所有结果都说创建一个messageBox非常简单:

MessageBox (NULL, "Hello World" , "Hello", MB_OKCANCEL);
Run Code Online (Sandbox Code Playgroud)

但是创建一个需要输入的弹出窗口更加复杂,并且没有直接的方法来实现它.我在谷歌上找到的所有结果都是在2001年到2005年之间的某个地方.我想我在这里询问近年来是否出现了一些更直接的解决方案.

希望像Java一样好看和直接:

int number = JOptionPane.showInputDialog ("Enter an integer");
Run Code Online (Sandbox Code Playgroud)

如果不是这样的话,我能否简要解释一下如何做到这一点?


编辑:我无法得到任何工作.:(我最后编写代码来完成Java工作,然后编写一行C++代码来调用.jar文件.: - /由于问题是时间敏感的,它总比没有好.

Chr*_*cke 8

如果您使用的是Visual C++ Express,则可以使用许多可用于创建对话框的免费资源编辑器.ResEdit是我发现的最好的之一.

您需要在添加到项目的.RC文件中创建对话框资源.

然后,这是一个非常简单的调用DialogBox的情况 - 它将从资源文件加载对话框并将其放在屏幕上.将通过许多通知调用传入的DialogProc.通常,您希望为所有内容返回FALSE,但将WM_INITDIALOG作为用文本初始化编辑控件的位置处理,并且在单击按钮时将发送WM_COMMAND.


Rap*_*ael 7

纯C++没有类似的东西.基本上你要做的事情只能通过使用对操作系统的API调用或使用像Qt这样的GUI库来实现(我推荐它使得它更容易调用本机API,它也是多平台)

使用Qt,你可以显示一个输入对话框,就像在java上一样:

bool ok;
QString text = QInputDialog::getText(
        "MyApp 3000", "Enter your name:", QLineEdit::Normal,
        QString::null, &ok, this );
if ( ok && !text.isEmpty() ) {
    // user entered something and pressed OK
} else {
    // user entered nothing or pressed Cancel
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处下载Qt库:qt.nokia.com/products/developer-tools/