子ダイアログから親ダイアログが作ったワーカースレッドにイベントが飛ばせるのか – プログラミング – Home

子ダイアログから親ダイアログが作ったワ...
 
通知
すべてクリア

[解決済] 子ダイアログから親ダイアログが作ったワーカースレッドにイベントが飛ばせるのか


Mr.Boo
 Mr.Boo
(@Mr.Boo)
ゲスト
結合: 19年前
投稿: 15
Topic starter  

開発環境 VC++ Ver6.0 SP6 MFC使用
OS Windows XP HOME(最終的にはXP Pro)

ここで教えた頂いた方法で、ダイアログベースのアプリから、DoModalを使って子ダイア
ログを作り出すアプリを作成いたしました。

この後、子ダイアログのボタンクリックで、親ダイアログが作ったワーカースレッドに
イベントを飛ばして、処理をさせようと思うのですが、そんな事って出来るのでしょうか

本を調べていたら、ワーカースレッドに対して、イベントの発生を知らせるには、
CEventクラスを使い、ワーカースレッド作成時にポインターを渡すことで親ダイアログと
のイベントのやり取りは出来るように書いてあったのですが、子ダイアログとの間でも可
能なのでしょうか?

何となく、子ダイアログを親ダイアログから派生させて、親ダイアログのメンバである
イベントを使えば出来るような気もするのですが。

済みません、VC++は初心者なのでよくわかっておりません。
どうぞご教授願います。


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

PostThreadMessage とかで可能だと思います。


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

スレッドは、グローバル関数ですよね。

だとしたら、イベントの変数もグローバルにして、「WaitForSingleObject」等で
待ってあげればOKです。

ただ、数人でソフトを作るとなると、変数のグローバル化は、よくないかも知れません
ね。


返信引用
KJ
 KJ
(@KJ)
ゲスト
結合: 21年前
投稿: 52
 

ワーカスレッドのパラメータに親ダイアログのthisポインタを渡し、
イベント変数を親ダイアログに持たせる。
子ダイアログには、イベント変数の参照かポインタを持たせれば、
グローバルにはならないかな。


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

試してみる価値は、あると思います。
親ダイアログの「this」ポインターをスレッドに渡してスレッド上で親ダイアログの
関数を実行することも
よくやります。


返信引用
Mr.Boo
 Mr.Boo
(@Mr.Boo)
ゲスト
結合: 19年前
投稿: 15
Topic starter  

スレが遅れて申し訳ありませんでした。
シャノンさん、ITOさん、KJさん、貴重なアドバイスを有り難う御座います。
お教えいただいた方法で、試してみます。
ただ、会社でなければ確認できないので(プロジェクトを持って帰るのを忘れてしまいました)
月曜に結果の書き込みをさせていただきたいと思います。

結果次第では、また、皆さんにいろいろと相談をさせていただくことがあるかもしれませんが、
何卒宜しく御願いいたします。


返信引用
Mr.Boo
 Mr.Boo
(@Mr.Boo)
ゲスト
結合: 19年前
投稿: 15
Topic starter  

子ダイアログ生成時に親ダイアログの「this」ポインタを引き渡し、同じように、
親ダイアログから起動されるワーカースレッドに対しても、「this」ポインタを
引数で渡して、イベント変数を監視させる方法で、子ダイアログからワーカースレッド
へイベント通知出来るようになりました。
シャノンさん、ITOさん、KJさん、アドバイスを頂き有り難う御座いました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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