マルチスレッド時のダイアログ
Posted: 2013年5月12日(日) 22:48
C言語でDXライブラリのプログラムを組んでいます。
今作っているソフトは、DxLibがメッセージ処理してくれるProcessMessage()以外で動くように、マルチスレッドにしています。
理由はソフトのタイトルバーがシステムに掴まれても画面が動くようにするためです。
またモードレスダイアログを表示させるため、ダイアログメッセージ処理を肩代わりしてくれるSetDialogBoxHandle( hwnd ); を呼び出していました。
しかし、DxLibでマルチスレッドにするための関数SetMultiThreadFlag( TRUE ) ; を呼び出すと上記の関数が無効(?)になります。
使えないようにコメントアウトしてしまうのです。
そこでダイアログメッセージ処理も自分で作ろうと思ったですが、DxLib側のプログラムで呼び出すと処理が重くなります。また別のスレッドを作ろうとしたのですが、プログラムを通ってくれません(書き方が違うんだと思いますが…)。
どうすればDxLibのマルチスレッドにさらにモードレスダイアログのメッセージ処理を追加できるでしょうか?
YAHOO!知恵袋リンク
windows 7 HP
VC++2008
DxLib 3.10a
今作っているソフトは、DxLibがメッセージ処理してくれるProcessMessage()以外で動くように、マルチスレッドにしています。
理由はソフトのタイトルバーがシステムに掴まれても画面が動くようにするためです。
またモードレスダイアログを表示させるため、ダイアログメッセージ処理を肩代わりしてくれるSetDialogBoxHandle( hwnd ); を呼び出していました。
しかし、DxLibでマルチスレッドにするための関数SetMultiThreadFlag( TRUE ) ; を呼び出すと上記の関数が無効(?)になります。
使えないようにコメントアウトしてしまうのです。
そこでダイアログメッセージ処理も自分で作ろうと思ったですが、DxLib側のプログラムで呼び出すと処理が重くなります。また別のスレッドを作ろうとしたのですが、プログラムを通ってくれません(書き方が違うんだと思いますが…)。
どうすればDxLibのマルチスレッドにさらにモードレスダイアログのメッセージ処理を追加できるでしょうか?
YAHOO!知恵袋リンク
windows 7 HP
VC++2008
DxLib 3.10a