こんにちは。のっちです。
MFCでダイアログベースを使いプログラムを組んでいます。
ウインドウのボタンを押したら次のウインドウが新しく表示されるのですが、
前のウインドウのエディットボックスに入っている文字を新しいウインドウの
エディットボックスに表示したいのですがどうやればいいのですか?
下のプログラムはボタンを押すと次のウインドウを表示するものです。
void CTourokuDlg::OnButton2()
{
CKeisanDlg KeisanDlg;
KeisanDlg.DoModal();
}
よろしくお願いします。
らららです。
呼び出したダイアログのメンバ変数に
前のウインドウのエディットボックスに入っている文字を
表示できるメンバ変数を用意しておいて
DoModal()する前にセットする。
それで、CKeisanDlgのInitialで、
表示するのでどうでしょう?
らららさんお返事ありがとうございます。
void CTourokuDlg::OnButton2()
{
CString ss;
CKeisanDlg KeisanDlg;
CEdit* myEDa1=(CEdit*)GetDlgItem(IDC_EDIT1);
m_ed1.GetWindowText(ss);
myEDa1->SetWindowText(ss);
KeisanDlg.DoModal();
}
こんな感じにしたんだけど表示されませんでした。
どうしたらいいのか教えてください。
表示するのは、CKeisanDlgのエディットボックスですよね。
CString ss;
CKeisanDlg KeisanDlg;
CEdit* myEDa1=(CEdit*)GetDlgItem(IDC_EDIT1);
m_ed1.GetWindowText(ss);
// myEDa1->SetWindowText(ss);
keisanDlg.m_ss = ss; // メンバに表示する文字列をセットする。
KeisanDlg.DoModal();
↑のように直して、さらに
KeisanDlgのInitialで、
表示した、エディットボックスに、SetWindowText(m_ss);
です。
※m_ssは、CKeisanDlgに新たに追加した文字列保持用メンバ変数。
DoModalで文字列を渡せばよいのでは。
重さん、らららさんお返事ありがとうございます。
らららさんと重さんが教えてくださったのを参考にしたら出来ました。
お返事くださった皆さんありがとうございます。
本当にありがとうございます。
これからもよろしくお願いします。