2012-04-18 7 views
1

MFCアプリケーションを使用してVisual Studio 2010で電卓を作成したいと考えています。このため私は、ダイアログボックスを使用して電卓を作成し、ボタンと編集ボックスを追加しました。編集ボックスは入力として使用されていることがわかっています。だから私はフロート入力として入力したいと思います。これは次の文の意味です:フロート番号として入力

文があります:まず、2つの編集ボックスを選択してダイアログに配置します。 [表示]メニューの[クラスウィザード]を使用して、それぞれをfloat値number1またはnumber2に接続します。

編集ボックスがあります。今、浮動小数点値1にそれらをどのように接続するのですか?どのような手順ですか?

おかげ

+0

より具体的にお聞かせください。ダイアログボックスの – MrD

+0

; 2つの編集ボックスがあります。ユーザは任意の2つの数字を入力として与えることができ、結果が次に実行される。入力目的のために、私は何をする必要がありますか?入力用に使用可能なエディットボックスを定義する方法。 –

答えて

1

私が正しくあなたの質問を理解していれば、あなたは、ダイアログボックスのfloatメンバ変数に編集ボックスをバインドします。これはdialog data exchangeと呼ばれます。この回答では、コードでこれを達成する方法を説明しようとします(クラスウィザードを教えるよりも役立つはずです)。

基本的に、あなたは彼らのアクセサと一緒に、あなたのダイアログボックスに2つのfloatメンバ変数を定義します。

class CYourDialog : CDialog 
{ 
    // ... 

public: 
    float GetNumber1() const { 
     return m_number1; 
    } 

    void SetNumber1(float val) { 
     m_number1 = val; 
    } 

    float GetNumber2() const { 
     return m_number2; 
    } 

    void SetNumber2(float val) { 
     m_number2 = val; 
    } 

private: 
    float m_number1; 
    float m_number2; 
}; 

すると、ダイアログボックスのDoDataExchange()メソッドをオーバーライドして、メンバーをバインドするために、そこからDDX_Text()を呼び出しますあなたのコントロールする変数:

void CYourDialog::DoDataExchange(CDataExchange *dx) 
{ 
    CDialog::DoDataExchange(dx); 
    DDX_Text(dx, IDC_NUMBER1_CONTROL_ID, m_number1); 
    DDX_Text(dx, IDC_NUMBER2_CONTROL_ID, m_number2); 
} 

そこから、MFCフレームワークは、自動的にダイアログの初期化のメンバ変数の値をエディットボックスを移入し、メンバーvを更新しますOKボタンがクリックされたときに編集ボックスの値が表示されます。これは、エディットボックスを直接操作するのではなく、これらのメンバー変数を読み書きする必要があるため、良いことです。

+0

ありがとうございましたdone-ビルドして使用しています - 出力ファイルはどこにありますか?この出力ウィンドウファイルをプロジェクトディレクトリに配置できません –

+0

アプリケーションの実行可能ファイルを意味しますか?これはプロジェクトの設定に依存します。プロジェクトの設定は、ほとんどの場合、プロジェクトディレクトリの下の 'Debug'または' Release'サブディレクトリにあります。 –

+0

はい - 正確に。そのようなファイルはありません。 : –

関連する問題