DirectXEvent8_DXCallbackについて

解決


VBひよっこ  2006-07-10 18:43:23  No: 95975

いつもここで勉強させていただいています。
KeyDownのイベント発生でつまづいています。

独立した2つのアプリに同時に共通してKEYを送りたい
ためアプリ側では、Form_KeyDownではなくDirectX8の
DirectXEvent8_DXCallback()を使っています。

Form_KeyDownではDo Loop 中もDoeventsを入れることで
KeyDownイベントが発生しますが、DirectXEvent8_DXCallback
では発生しません。こういう仕様なのでしょうか。

もし設定や他の方法でDo Loop 中もKEYが押されたことを検知
できる方法があればと思い質問させていただきました。
お教えいただければ幸いです。よろしくお願いします。


VBひよっこ  2006-07-10 18:45:36  No: 95976

環境の記述を忘れていました。
VB6.0 WindowsXPです。


K.J.K.  2006-07-10 19:52:34  No: 95977

仕様です。

そもそもメッセージキューベースの処理と同期オブジェクトベースの
処理を不用意に混ぜてはいけません。


VBひよっこ  2006-07-11 07:41:07  No: 95978

K.J.K.さん  ご指導有り難うございました。

仕様ならしかたないですね。あきらめてTimerを
使用することにします。

速度が必要な処理でDo LoopはTimer1.Interval = 1
より格段に早いので・・・・残念です。

今回も大変勉強なりました。ありがとうございます。


K.J.K.  2006-07-11 10:23:04  No: 95979

DirectXEvent8_DXCallbackをつかうのであれば、
TimerではなくAPI関数のtimeSetEventと併用しましょう。
第5引数にTIME_CALLBACK_EVENT_PULSE Or TIME_PERIODICを
第3引数のDirectX8.CreateEventの戻り値を指定してください。


VBひよっこ  2006-07-12 05:11:20  No: 95980

K.J.K.さん。再度のご指導ありがとうございます。

>timeSetEventと併用しましょう。
了解しました。いまからググッてみます。

きっとつまずくと思いますので、別スレでまた改めて
ご指導のほど、よろしくお願いします。

今回のことでTimer関数がIntervalを1mSec単位で設定できる
のに、設定値が10mSecぐらいまでは、ほとんど正確性が期
待できないということを、たくさんの人たちが証言している
事実を知りました。勉強になりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加