私が正しくあなたの質問を理解していれば、あなたは、ダイアログボックスの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
ボタンがクリックされたときに編集ボックスの値が表示されます。これは、エディットボックスを直接操作するのではなく、これらのメンバー変数を読み書きする必要があるため、良いことです。
より具体的にお聞かせください。ダイアログボックスの – MrD
; 2つの編集ボックスがあります。ユーザは任意の2つの数字を入力として与えることができ、結果が次に実行される。入力目的のために、私は何をする必要がありますか?入力用に使用可能なエディットボックスを定義する方法。 –