ダイアログベースでの自作クラスの作成場所

[戻る]
さおり 2002/05/28(火) 12:27:28
こんにちは。さおりと申します。
初歩の初歩だと思いますが、どなたか教えて頂けないでしょうか?
環境は、WinMe、VC++6.0、MFCです。

ダイアログベースのプログラムを作ろうとしていて、defaultDlgクラスの
OnInitDialogの中で自作クラスを作成してプログラム中でその一つのクラスを
一意に使おうと思いました。
そこで、OnButton1()等で、OnInitDialogで作成したクラスにアクセスしようとした
ところスコープからはずれたせいなのか、アクセスできなかったです。
OnButton1()で作成したクラスにはアクセスできます。

プログラム中で、自作クラスは1つ作成できれば良かったので、OnInitDialogで
1回作成すれば、終了時自動で破棄されるし、それでよいのかなと思ったのですが、
OnButton1()等でそのクラスを見れないとうまくないです。
OnButton1()に引数でクラスを渡せばよいのかなとも思ったのですが、
その方法も良く分からなかったです。

こんな場合、どの様に解決すればよいのでしょうか?
または、プログラムを作る上で、考え方が間違っているようでしたら教えて下さい。

宜しくお願いします。

ワルツ 2002/05/28(火) 12:33:56
そのダイアログをメンバ変数にもてばよいのではないでしょうか?

K 2002/05/28(火) 12:35:52
ヘッダーファイルに作成したらどうでしょうか

さおり 2002/05/28(火) 19:53:58
[[解決]]
こんばんは、さおりです。
返答してくださって有り難う御座います。

ダイアログベースなので、ダイアログを自作クラスのメンバ変数に持つのは
無理だと思うのですが、私の文章が悪くて逆の意味に
とられちゃったようですね。

でも、自作クラスをダイアログのメンバ変数に持てばよかったのですね。
OnInitDialog()のなかで定義してってことしか頭に無かったので、
メンバ変数のことが全く思い浮かばなかったです。
よく考えてみれば確かにそうですよね。
OnInitDialog()の中でクラスを生成すればDialog()が終了した時に
破棄されちゃうんですよね。OnButton1()なんかで見れないのは当然でした。
恥ずかしくなるような質問をしてしまいました。
ワルツさん、Kさん、返答してくださって有り難う御座います。

古いスレッドには追加発言できません。