PlaySound(...) spielt kein Sound
-
Eigentlich ist es nur ein kurzes Codeteil aber ...
case ID_PLAY //PLay Button { PlaySound("wndw.wav",0,SND_ASYNC|SND_NODEFAULT|SND_RESOURCE); }
Aber es wird kein Sound abgespielt (Habe die Sounddatei in den Projekt Ordner und
wo die .exe Datei liegt reingepackt aber der Sound wird nicht abgespielt
-
Du solltest dir die Doku zu PlaySound noch einmal in Ruhe durchlesen.
Als ersten Parameter übergibst du einen Dateinamen, für das Modulhandle 0 und mit dem Flag SND_RESOURCE weist du PlaySound an, in der (nicht vorhandenen) Instanz nach dem Sound zu suchen -> kann nicht funktionieren.Du solltest SND_RESOURCE durch SND_FILENAME ersetzen.
-
Es geht DANKEEEEEEEEEEEEEEEEEE!
-
Aber noch eine kurze Frage
case WM_COMMAND: { switch (wParam) { case ID_PLAY: { PlaySound("wndw.wav",0,SND_ASYNC|SND_FILENAME); } case ID_BTN_BEENDEN: { int Resultat; // Rückgabewert der Messagebox // Messagebox für Sicherheitsabfrage Resultat = MessageBox (hWnd, "Wirklich beenden?", "Programm beenden", MB_YESNO | MB_ICONQUESTION); if (Resultat == IDYES) { PostQuitMessage (0); return (0); } // Nein, also ganz normal weiter return (0); } } break; } break;
Hier wird sofort nach dem PlayButton die Messagebox ausgegeben
wie behebe ich das ?
-
Ich wollte es eigentlich noch dazuschreiben, habe aber gedacht, es handele sich um einen Copy & Paste - Fehler:
Jeder case-Zweig muss mit einem break/return beendet werden, ansonsten wird in den nächsten Zweig gesprungen (was man manchmal durchaus möchte, hier ist es aber ein Fehler):case ID_PLAY: PlaySound("wndw.wav",0,SND_ASYNC|SND_FILENAME); break;
Die Klammern brauchst du nur, wenn Variablen innerhalb des Zweigs deklariert werden (neuer Scope).
-