1

レガシ コード MFC VC++ があります。2 つの入力を要求するメッセージ ボックスを追加する必要があります (両方とも文字列です)。セキュリティの問題を考慮する必要はありません。入力が必要です。

これを行う方法?私は本当にMFCの男ではありません。数ページ検索しました。私には良くありません。

最高のありがとう

4

1 に答える 1

2

入力を取得するには、メッセージ ボックスではなく、ダイアログが必要です。

VS で作業していると仮定すると、リソース ビューに移動してツリーを展開し、[ダイアログ] を右クリックして、ポップアップ メニューから [ダイアログの挿入] を選択します。これにより、いくつかの編集コントロールを挿入するダイアログを描画できます。おそらく、それぞれの横に静的コントロールを配置して、そこに入力する内容を説明するなどです。[OK] ボタンと [キャンセル] ボタンで始まるので、それらを追加する必要はありません。

ダイアログがどのように見えるかを描いたら、それをバックアップするためのコードなどを追加する必要があります。コントロールの 1 つを右クリックし、メニューから [クラスの追加] を選択します。これにより、ダイアログのクラスの名前を尋ねるダイアログが表示されます。クラス名 (「my_input」など) を入力すると、ソース/ヘッダー ファイルに一致する名前が選択されます。基本クラスを "CDHtmlDialog" から "CDialog" に変更することをお勧めします。満足したら、「完了」をクリックすると、クラス/ファイルが作成されます。

次に、ダイアログに戻り、編集コントロールの 1 つを右クリックして、[変数の追加] を選択します。右端に向かって単純にするために、「カテゴリ」を「コントロール」から「値」に変更します。次に、そのコントロールから受け取る文字列の名前を選択し、[OK] をクリックします。他のコントロールについて繰り返します。他のエディット コントロールについても繰り返します (明らかに、その変数に別の名前を選択します)。

最後に追加する必要があるのは、そのダイアログを呼び出すコードです。これを行うには、ダイアログのヘッダーを使用する場所に含める必要があります。次に、次のようなコードを少し追加します。

my_input inp;

if (inp.DoModal() == IDOK) {
    // retrieve your two strings
    CString input1 = inp.field1;
    Cstring input2 = inp.field2;
}
于 2012-05-25T05:48:12.690 に答える