いつもここで勉強させていただいています。
KeyDownのイベント発生でつまづいています。
独立した2つのアプリに同時に共通してKEYを送りたい
ためアプリ側では、Form_KeyDownではなくDirectX8の
DirectXEvent8_DXCallback()を使っています。
Form_KeyDownではDo Loop 中もDoeventsを入れることで
KeyDownイベントが発生しますが、DirectXEvent8_DXCallback
では発生しません。こういう仕様なのでしょうか。
もし設定や他の方法でDo Loop 中もKEYが押されたことを検知
できる方法があればと思い質問させていただきました。
お教えいただければ幸いです。よろしくお願いします。
環境の記述を忘れていました。
VB6.0 WindowsXPです。
仕様です。
そもそもメッセージキューベースの処理と同期オブジェクトベースの
処理を不用意に混ぜてはいけません。
K.J.K.さん ご指導有り難うございました。
仕様ならしかたないですね。あきらめてTimerを
使用することにします。
速度が必要な処理でDo LoopはTimer1.Interval = 1
より格段に早いので・・・・残念です。
今回も大変勉強なりました。ありがとうございます。
DirectXEvent8_DXCallbackをつかうのであれば、
TimerではなくAPI関数のtimeSetEventと併用しましょう。
第5引数にTIME_CALLBACK_EVENT_PULSE Or TIME_PERIODICを
第3引数のDirectX8.CreateEventの戻り値を指定してください。
K.J.K.さん。再度のご指導ありがとうございます。
>timeSetEventと併用しましょう。
了解しました。いまからググッてみます。
きっとつまずくと思いますので、別スレでまた改めて
ご指導のほど、よろしくお願いします。
今回のことでTimer関数がIntervalを1mSec単位で設定できる
のに、設定値が10mSecぐらいまでは、ほとんど正確性が期
待できないということを、たくさんの人たちが証言している
事実を知りました。勉強になりました。
ツイート | ![]() |