web-dev-qa-db-ja.com

入力ボックスを使用してユーザーに促しますか? [C ++]

私の目標は、ポップアップボックスを使用して入力をユーザーに尋ねることです。私はかなり少し、かなりほど多くの結果を検索しました。結果は、MessageBoxの作成が本当に簡単です。

MessageBox (NULL, "Hello World" , "Hello", MB_OKCANCEL);
 _

しかし、入力を受けたポップアップを作成することはより多くの関与していて、それをするための簡単な方法はありません。私がGoogleで見つけることができるすべての結果は、2001年から2005年のどこかにデートされました。近年、もう少し前方のソリューションが来たかどうか尋ねると思います。

うまくいけば、Javaのように素敵で簡単なもの:

int number = JOptionPane.showInputDialog ("Enter an integer");
 _

そうでない場合は、どうやってやるかについて簡単に説明できますか。


編集:仕事に何かを取得できませんでした。 :(私はJavaで作業を行うためにコードを書き始め、その後、.jarファイルを呼び出すために1行のC++コードを書きました。:/問題は時間が敏感であるため、何もないほど良かった。

12
Ryan

純粋なC++のためのそのようなものは何もありません。基本的にあなたがしようとしていることは、OSへの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
}
 _

ここにQtライブラリをダウンロードすることができます. qt.nokia.com/products/developer-tools/

7
Raphael

マイクロソフトは、MessageBoxと同様に、あなたのユースケースを最適化するのに十分なほど一般的であることを検討しません。彼らはあなたがそれの多くのコントロールを持つダイアログをレイアウトすることを期待しています、おそらくコントロールとの複雑な対話を持ついくつかの複雑な対話を持ち、ダイアログが完全に満たされると応答します。あなたが求めているものだけです。

リソースエディタはダイアログを作成する最も簡単な方法ですが、Free ExpressバージョンのVisual Studioには含まれていません。プロンプトのテキストコントロールとユーザーの編集コントロールを使用してダイアログをデザインします。DialogBox windows関数を使用してダイアログを表示し、ユーザーがOKボタンを押すと戻ります。 Xダイアログの隅にあります。マイクロソフトには、その文書がいくつかあります ここ

MFC、WTL、QT、およびWXなど、プロセスを簡単にしようとするプラットフォームがいくつかありますが、これは純粋なWindows APIを使用して行う方法です。

3
Mark Ransom

これを試してください: C++ VS2010の入力ボックス

#include "stdafx.h"
#using <system.windows.forms.dll>
#using <Microsoft.VisualBasic.dll>

using namespace System;

int main(array<System::String ^> ^args)
{
    Microsoft::VisualBasic::Interaction::InputBox(L"Hello", L"Title", L"DefResp", 500, 500);
    return 0;
}
 _
0