ダイアログベースでの自作クラスの作成場所 – プログラミング – Home

ダイアログベースでの自作クラスの作成場...
 
通知
すべてクリア

[解決済] ダイアログベースでの自作クラスの作成場所


さおり
 さおり
(@さおり)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

こんにちは。さおりと申します。
初歩の初歩だと思いますが、どなたか教えて頂けないでしょうか?
環境は、WinMe、VC++6.0、MFCです。

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

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

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

宜しくお願いします。


引用未解決
トピックタグ
ワルツ
 ワルツ
(@ワルツ)
ゲスト
結合: 23年前
投稿: 21
 

そのダイアログをメンバ変数にもてばよいのではないでしょうか?


返信引用
K
 K
(@K)
ゲスト
結合: 23年前
投稿: 98
 

ヘッダーファイルに作成したらどうでしょうか


返信引用
さおり
 さおり
(@さおり)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

こんばんは、さおりです。
返答してくださって有り難う御座います。

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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