DoModalで生成したウィンドウをプログラムで消去したいです。

[戻る]
無限 2005/06/28(火) 10:14:58
DoModalで生成したウィンドウをプログラムで消去したいです。
良い方法をご存知の方教えてください

VC++6.0 XinXP

Blue 2005/06/28(火) 10:22:23
DoModalで生成したウィンドウに対して
“閉じてくださいよ”というメッセージを送ってください。

PATIO 2005/06/28(火) 10:26:50
閉じたいモーダルダイアログと閉じようとするプログラムの関係が明示されていないので
レスのつけようがありません。
きちんとアプリケーションの構成を含めた説明をするようにしてください。
ウインドウの親子関係とか、モジュール構成とか。
何処までできていて何処からができないのかも入れておいた方が良いと思います。

あなたが書いていない部分の情報は読み手には一切伝わりません。
何処まで書いてよいかわからないときは知っている限りの情報を書いた方が良い場合が
多いです。

PATIO 2005/06/28(火) 10:28:28
追伸。
閉じたいダイアログの表示しているプログラムと閉じようとするプログラムが別である場合、
閉じたいダイアログの表示しているプログラムに修正を入れられるのかという点も必要か
と思います。

Blue 2005/06/28(火) 10:28:33
DoModalだから、ダイアログの生成、表示の処理を別スレッドにしないと
いけないのかな。

モードレスじゃだめなの?

無限 2005/06/28(火) 11:29:50
すみません事情があってモーダルダイアログでないと駄目なのです。

OnCancel()などで無理やりダイアログを破壊しようとしましたが、
エラーメッセージが出て上手くいきません。

ku 2005/06/28(火) 11:42:46
> OnCancel()などで無理やりダイアログを破壊しようとしましたが、
> エラーメッセージが出て上手くいきません。
これはDoModal()と同じクラス?
そうゆう説明が足りないと指摘されているのです
エラーメッセージもエラーメッセージそのものや状況を載せないと
どういったエラーがどういったタイミングで出たのかなのかわかりません
その結果、的確なコメントがつきにくいということです

ars 2005/06/29(水) 10:58:05
通りすがりの者ですが書いてよかったのかな?
しかし質問の仕方があいまいすぎる。
エラーがでるということはタイマーかスレッドか別プログラムでしょうね
どの場合でも確実な方法はウィンドウハンドルを取って
PostMessage(hWnd, WM_CLOSE, 0, 0);
すれば「×」を押したのと同じ動作に移行します。
Domodalってことはおそらく関数内で構築してると思うので、ウィンドウハンドルが
保持できてないでしょう?
それのアクセス違反かな?

PATIO 2005/06/29(水) 11:03:50
他の方もいわれていますけれど、
とにかく情報が足りなさ過ぎます。

今答えてくれている人たちはみんな想像で答えているのです。

無限さんがきちんと状況を説明しない限り、
想像で答えては否定されるという繰り返しで効率が悪いったらありません。

何よりもまず、現状の説明をお願いします。
専門用語がわからないのであれば、わかる言葉でもかまいません。
とにかく、自分の今の状況を出来るだけ詳しく詳細に説明してください。
今の書き込み内容を見る限りでは、詳しく説明してくれても
さらに不明点に関する質問が出そうな気はしますが、
今の状態では全く要領を得ないと思いますよ。

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