ウインドウ間で文字のやり取りをするには? – プログラミング – Home

ウインドウ間で文字のやり取りをするには...
 
通知
すべてクリア

[解決済] ウインドウ間で文字のやり取りをするには?


のっち
 のっち
(@のっち)
ゲスト
結合: 24年前
投稿: 21
Topic starter  

こんにちは。のっちです。
MFCでダイアログベースを使いプログラムを組んでいます。

ウインドウのボタンを押したら次のウインドウが新しく表示されるのですが、
前のウインドウのエディットボックスに入っている文字を新しいウインドウの
エディットボックスに表示したいのですがどうやればいいのですか?
下のプログラムはボタンを押すと次のウインドウを表示するものです。

void CTourokuDlg::OnButton2()
{
CKeisanDlg KeisanDlg;
KeisanDlg.DoModal();
}
よろしくお願いします。


引用未解決
トピックタグ
ららら
(@admin-rarara)
メンバー Admin
結合: 5年前
投稿: 119
 

らららです。

呼び出したダイアログのメンバ変数に
前のウインドウのエディットボックスに入っている文字を
表示できるメンバ変数を用意しておいて
DoModal()する前にセットする。
それで、CKeisanDlgのInitialで、
表示するのでどうでしょう?


返信引用
のっち
 のっち
(@のっち)
ゲスト
結合: 24年前
投稿: 21
Topic starter  

らららさんお返事ありがとうございます。

void CTourokuDlg::OnButton2()
{
CString ss;
CKeisanDlg KeisanDlg;
CEdit* myEDa1=(CEdit*)GetDlgItem(IDC_EDIT1);
m_ed1.GetWindowText(ss);
myEDa1->SetWindowText(ss);
KeisanDlg.DoModal();
}
こんな感じにしたんだけど表示されませんでした。
どうしたらいいのか教えてください。


返信引用
ららら
(@admin-rarara)
メンバー Admin
結合: 5年前
投稿: 119
 

表示するのは、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に新たに追加した文字列保持用メンバ変数。


返信引用
重
 重
(@重)
ゲスト
結合: 24年前
投稿: 84
 

DoModalで文字列を渡せばよいのでは。


返信引用
のっち
 のっち
(@のっち)
ゲスト
結合: 24年前
投稿: 21
Topic starter  

重さん、らららさんお返事ありがとうございます。

らららさんと重さんが教えてくださったのを参考にしたら出来ました。

お返事くださった皆さんありがとうございます。

本当にありがとうございます。
これからもよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました