モードレスダイアログの破棄の仕方 – プログラミング – Home

モードレスダイアログの破棄の仕方
 
通知
すべてクリア

[解決済] モードレスダイアログの破棄の仕方


こうじ
 こうじ
(@こうじ)
ゲスト
結合: 24年前
投稿: 23
Topic starter  

モードレスダイアログ関係で2つ質問あります.ご助言ください.

1)現在,モードレスダイアログを使う練習をしています.ダイアログボックス上に
 コマンドボタンを置かずに,右上に閉じるボタン(X)がある状態です.
 閉じるボタンを押したらダイアログが消えるのはいいのですが,DestroyWindow
とかの記述はしていません.
  DestroyWindowを書いたほうがメモリ管理上は良いのでしょうか?

2)ある命令に関連付けてモードレスダイアログを破棄したいのですが,どうしたらよ
 いでしょうか?

class C*** : public CDlgのポインタpを取得して,
p->DestroyWindow();
としてみたのですが,
 『値が割り当てられていないローカルな変数 'p' に対して参照が行われました。』
 という警告が出てしまう状況です.

未熟なもので用語に間違い等ありましたらすいませんが,よろしくお願いします.
動作環境:VC6.0,Windows Meです.

以上.


引用未解決
トピックタグ
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

1) デフォルトで DestroyWindow が呼ばれます。
2) ポインタはどのように取得されましたか?
単にポインタの変数を宣言しただけではないですか?


返信引用
こうじ
 こうじ
(@こうじ)
ゲスト
結合: 24年前
投稿: 23
Topic starter  

kazumaさん,
1)の回答ありがとうございました.
2)についてですが,
Class C??? :public CDlg
のポインタを
C??? *p;
として取得しました.それから,
p->DestroyWindow();
と記述しました.初心者なものでポインタの変数の意味が
わかりませんでした.問題点これでわかりますでしょうか?

それから,真夜中にご返答ありがとうございます.
申し訳ないことに私は熟睡中でした.

以上.


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

MSDNに modeless といううってつけのサンプルがあります。

これを動作させて、ソースを眺めてみれば、モードレスダイアログについて

いろいろと理解できると思います。

>C??? *p;
>として取得しました.それから,
>p->DestroyWindow();
>と記述しました.初心者なものでポインタの変数の意味が
>わかりませんでした.問題点これでわかりますでしょうか?

p = new ChogeDlg; などとして実体のアドレスを渡します。

インスタンス(実体)を指していないポインタを使ってはいけません。


返信引用
こうじ
 こうじ
(@こうじ)
ゲスト
結合: 24年前
投稿: 23
Topic starter  

kazumaさん,Bunさん,レスありがとうございました.

しかしながら,作成したダイアログのインスタンスの
とり方がわかりません.全く先に進まなくなりました
ので,今回の問題解決は後回しにして気長に勉強しよ
うかと思います.


返信引用
こうじ
 こうじ
(@こうじ)
ゲスト
結合: 24年前
投稿: 23
Topic starter  

ダイアログ作成時にダイアログのポインタを
public変数として取得してやることで,ダイアロ
グにさわらずにdestroywindowできました.

皆様お世話になりました.


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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