MessageBoxについて – プログラミング – Home

通知
すべてクリア

[解決済] MessageBoxについて


バンヴィ
 バンヴィ
(@バンヴィ)
ゲスト
結合: 18年前
投稿: 19
Topic starter  

おはようございます。
初歩的な質問かもしれませんがお願いします。

Windows XP Win32 Dynamic-Link Library VC++6.0で作業しています。

メッセージボックスについてなのですが、
メッセージボックスのOKボタンが押されない限り(Exe側が終了しても)
そのメッセージボックスは終了されないようにしたいのですが、可能でしょうか??
(・メッセージボックスはDLL側で記述してあります。)

ご存知の方、ご教授願います


引用未解決
トピックタグ
バンヴィ
 バンヴィ
(@バンヴィ)
ゲスト
結合: 18年前
投稿: 19
Topic starter  

自己解決です。

ExE側のダイアログで、終了ボタンの操作を

EndDialog(0);

にすればDLL側のメッセージボックスが
Exe側のダイアログが閉じても残っていることが分かりました。

お騒がせしました。


返信引用
らら
 らら
(@らら)
ゲスト
結合: 22年前
投稿: 93
 

状況がよくわかりませんが、
メッセージボックスってOK押されるまで、MessageBox関数が帰ってこないので他のことでき
ませんよね?別スレッドでメッセージボックスを出しているということでしょうか?
それと、EXE側ってウィンドウを持っていますか?
たとえば、クローズボックスとかで終了させられたりしても、ShowWindow(SW_HIDE)で、ウィ
ンドウを隠して、別スレッド(かどうかわかりませんが)が終了するまで、実際には終了させな
いというのはどうでしょうか


返信引用
らら
 らら
(@らら)
ゲスト
結合: 22年前
投稿: 93
 

あらw 書いている間に解決でしたね。おめでとうございます。


返信引用
willy.K
 willy.K
(@willy.K)
ゲスト
結合: 17年前
投稿: 2
 

質問を
1.実行ファイルがあって、それがあるDLLを呼び出している。
2.そのDLLの中にはメッセージボックスを表示するロジックが入っている。
3.メッセージボックスを表示している間に実行ファイルが終了しても
  メッセージボックスは残したい。
と解釈しました。

基本的にDLLって、
呼び出し元の親であるExeと同一プロセス内にロードされるので
バンヴィさんがExe側と呼んでいるプロセスが死んだら
当然終了してしまいます。

※ですので、仮に同一Exeの中にメッセージボックスが実装されてても同じことかな。

よくあるパターンでは、3の時点で実行ファイル側を終了する処理のときに
本当に終了するのではなく、非表示にしておく方法でしょうかね。

※当然、メッセージボックスを閉じたあとには、後始末として
 非表示にしたウィンドウの終了処理を行わなければなりませんが。


返信引用
willy.K
 willy.K
(@willy.K)
ゲスト
結合: 17年前
投稿: 2
 

あらら、解決しちゃいましたか。

> EndDialog(0);
なのでMFCっぽいですが。

私の回答はららさんと似たような内容となりましたね。
※この質問の仕方では、こういう回答しか出来ないと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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