テキストボックスにキーボードから文字を入力し、その入力した値が
正しければ音を出し、そのテキストボックスをクリアするというプロ
グラムで、
① Call sndPlaySound(".\Sound\quiz2.wav", 0)
② txtAnswerWin(Index).Text = ""
①の効果音再生終了後に「ポンッ」と音が鳴り、テキストボックスを
クリアします。
この「ポンッ」と言う音はWindowsのシステムの音で、効かないキー
を押したときなどに出る音です。
①や②でブレイクすると音は出ません。①や②のあいだにSleepを挟ん
でも②のところで音が出ます。
この音を出さないようにするにはどうすればよろしいでしょうか。
「ポンッ」と言う音は、Windowsのサウンドの「一般の警告音」でした。
どうしてこれが鳴るのでしょう。
sndPlaySound()はSND_NODEFAULTフラグが立っていない場合、
ファイルがない時に警告音を発します。
かも。
そのようですね。
今回は指定のファイルも存在しますし、指定したファイルの音も鳴ります。
SND_NODEFAULTのフラグを入れても、入れなくても同じく、音の再生後に
「一般の警告音」が出ます。(ToT)
存在しないフィルを指定すると、この警告音が2度出ます。
> テキストボックスにキーボードから文字を入力し、その入力した値が
> 正しければ音を出し…
あー、もしかして
一行テキストボックスで
KeyDown、KeyUp、KeyPressイベントのいずれかでエンターキーの入力を監視していますか?
その場合はKeyAsciiまたはKeyCodeを0としてみてください。
ガッさん、ありがとうございます。仕組みはそのとおりです。
Key_Downを使って、
'Return(Enter)が押された!
If KeyCode = vbKeyReturn Then
の中で、入力データが正しいか、否かを見ています。
> その場合はKeyAsciiまたはKeyCodeを0としてみてください。
これをこの判断の後に入れると言うことでしょうか。
>これをこの判断の後に入れると言うことでしょうか。
聞く前にやってみればいいんじゃな〜い?
KeyDownだと、KeyCodeを0にしても「一般の警告音」がでました。
KeyPressだと、KeyAsciiを0にすれば出なくなりました。(0にしないと
出ました。)
ガッさん、ありがとうございました。
KeyDownにこだわる必要がないので、問題は解決しました。
ツイート | ![]() |