2016-12-05 17 views
-1

VB6を使用して仮想ピアノを作成したいと思います。
私のプログラムでは、KeyDownイベントを使用しますので、私はこれを書いた:私はQを保持するときWindowsMediaPlayer VB6のKeyDownイベント

Private Sub Form_KeyDown(KeyCode As Integer, Sift As Integer) 
    If KeyCode = VbKeyQ then 
     WindowsMediaPlayer1.URL = App.Path & "\sound_bank\C2.wav" 
    End If 
End Sub 

すべてが、私は私のキーボードでQを押したときに音が再生され、良いのですが、 音が前に停止しているがその持続時間の長さ。

C2.wavの長さが10秒であると言うと、キーボードのQを押して放すと、C2.wav(10秒)の全期間再生されましたが、キーボードでQを押したまま放置するとC2.wavを4秒間オンにします。そして、WMPのステータスが鍵を保持しているときに再生中から接続中に変わったことがわかりました。

私はキーを押したときにC2.wavの時間を停止/切断しないようにするにはどうすればいいですか?

+0

ありがとうございますが、まだ動作しません。 WindowsMediaPlayer1の状態が、鍵を保持しているときに再生から接続するように変更されました。 –

+1

もちろんです。キーを保持し、 'URL 'をリセットするたびにイベントが1秒間に数回発生します。アプローチを完全に再考するか、たとえば'GetAsyncKeyState'のようなタイマーを使うか、' KeyUp'が登録されるまですべての 'KeyDown'イベントを無視してください。 – GSerg

+0

@GSergおかげさま、どうやってイベントを作ることができますか?私は学び、 'GetAsyncKeyState'を使って試しましたが、それと同じです、あなたは私のコード例を教えてください? –

答えて

0

ジャストアイデア:

あなたはKeyDownイベントを焼成したときC2.wavを再生するために一定の間隔のタイマーを起動し、KeyUpイベントにタイマーを停止することがあります。

+0

ありがとう、私は試しましたが、動作しませんでした –

関連する問題