
お世話になります、fujitomoです。
C++のダイアログベースのプログラムを作成しているのですが、ご質問
させていただきたい件がありまして、こちらへ書かせて頂きました。
質問させて頂きたい内容は、メインダイアログにて、他ダイアログをAfxBeginThread()を用いて別スレッドでモーダル表示させた時、その他ダイアログを他ダイアログ内でEndDialog(IDOK)で閉じた際に、メインダイアログが最背面になってしまうのですが、この原因として考えられることはありませんでしょうか?
ちなみに、他ダイアログを別スレッドではなく、メインダイアログ内にてモーダル表示をし、EndDialog(IDOK)で閉じた際には、メインダイアログが最背面になることはありませんでした。
参考となるご意見がありましたら、よろしくお願い致します。
開発環境は
Visual Studio 2005です。
No.1ベストアンサー
- 回答日時:
確認もテストもしてないので違ってたらすいません
スレッドで表示しているDialogのオーナが設定されずに
そのようになったような記憶があります
オーナーとしてメインダイアログのハンドルを渡せばよかったような
他の方法として(実装できるかどうかはアプリによるのでなんともいえない)
スレッドの方から直接Dialogを開くのではなく
メインダイアログにメッセージを飛ばして
メインダイアログではそのメッセージを受け取ったらDialog表示するとか
koi1234様、ご回答ありがとうございます。
なるほど、オーナー設定しなければこのような症状が発生するのですね。
確かに、koi1234様のおっしゃるようにわざわざスレッドをその都度作成して呼び出すよりはメインダイアログでPostMessageして、ダイアログを呼び出した方がよさそうですね。
実際、そのようにプログラムを変更したところ、メインダイアログが最背面になる症状は発生しませんでした。
参考となるご意見大変ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スレッドにて同一メモリの書き...
-
WaitForSingleObjectの使い方に...
-
スレッドでWM_TIMERを受け取れない
-
スレッドの監視方法について
-
Macターミナルで実行中のプログ...
-
powershell を使いカレントディ...
-
バックグラウンドのプロセスの...
-
パソコンの演算速度について
-
エクセルVBA 大容量CSVファイル...
-
VBSの処理中一旦処理を止めて再...
-
【C言語】再帰が時間がかかる...
-
子プロセスの状態を親プロセス...
-
keycodeについて
-
sendkeysにてALT+CTRL+INSERTを...
-
マイコンからプログラムを読み...
-
スーパーのレジで並んでいたら...
-
逆コンパイルと逆アセンブルの...
-
プロセスIDからウィンドウハ...
-
フレームワーク「4.8.1」で、[S...
-
TCP/IP通信時のサーバーからの受信
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WaitForSingleObjectの使い方に...
-
VC++スレッドの正しい終了のさ...
-
Windows上で、シグナル(SIGTERM...
-
スレッドにて同一メモリの書き...
-
.netアプリへのSendMessageでフ...
-
メインスレッドのPostMessageと...
-
スレッドの監視方法について
-
C# スレッド終了の監視について
-
_beginthreadexで生成したスレ...
-
別スレッドのデータを受信できない
-
別スレッドからメインダイアロ...
-
スレッドの安全な終了のさせ方
-
マルチスレッドのスレッド数を...
-
VB2005 シリアル通信のClose処理
-
スレッドの終了の仕方
-
pthread_cond_wait 取りこぼし?
-
マルチスレッドプログラム
-
Linuxでスレッド優先度って変え...
-
別スレッドとイベントの終了手...
-
Win32APIでのスレッド処理
おすすめ情報