VC++6.0なのですが、
ダイアログA(モードレス)上のボタンクリックをトリガーに
ダイアログB(モーダル)を表示しています。
その時に、ダイアログA上のエディットボックスの値を加工し、
ダイアログBに渡したいのですが、
みなさん、どんな方法を使ってらっしゃいますか?
ご経験ある方いらっしゃいましたら
教えていただけますでしょうか。
よろしくお願いします。
最適かどうかはわかりませんが、私は次のような方法で実装したことがあります。
(1)CxxxAppクラスにメンバ変数Cを追加する。
(2)ダイアログAで、AfxGetApp()を用いてCxxxAppオブジェクトへのポインタを取得する。
(3)取得したCxxxAppオブジェクトを用いて、メンバCに値を設定する。
(4)ダイアログBで、AfxGetApp()を用いてCxxxAppオブジェクトへのポインタを取得する。
(5)取得したCxxxAppオブジェクトを用いて、メンバCの値を取得する。
MFCのダイアログベースのアプリで用いた手法です。
メンバへのアクセスなどに関しては、適宜、アクセス用のメンバ関数を用意するなり、
メンバ変数をpublicにするなりして下さい。
DoModal()の前に、DialogBへ値を渡すだけじゃないの
void CDialogA::On**()
{
UpdateData(TRUE);
dataNew = データ加工;
CDialogB dlgB;
digB.* = dataNew;
dlgB.Domodal();
}
ダイアログAとダイアログBの関係が書かれていないので
なんとも言いかねますね。
ダイアログAがダイアログBを直接出しているのであれば、
123さんの書かれている通りだろうし、
KING・王さんのやり方ならダイアログAが設定さえしていれば、
ダイアログBが何処から表示されても出せるでしょう。
ウインドウ間でデータの受け渡しをしたい時には、
受け渡しをするウインドウ間の関係が大きくかかわってくるので
必ず説明する必要があります。
ご注意を。
KING・王さん、123さん、PATIOさん
ご返答いただきありがとうございます.
単純に、DialogAからDialogBを直接出していますので、
123さんの書かれている通りでOKでした。
質問の仕方が悪く申し訳ございませんでした.
皆様本当にありがとうございました.