PlaySound関数で、

wavファイルを再生できます。

 

BOOL PlaySound(
   LPCTSTR pszSound,
   HMODULE hmod,
   DWORD   fdwSound
);

パラメータ

pszSoundはwavファイルです。

hmodはwavファイルを使い場合はNULLです。

fdwSoundはSND_で始まる定数です。

 

〇プログラム例

Lボタンを押すとtest.wavを再生して、

Rボタンを押すと停止します。

  1. #pragma comment(lib, "Winmm.lib")
  2.  
  3. #include <windows.h>
  4.  
  5.  
  6. LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  7. {
  8.      switch (uMsg)
  9.     {
  10.     case WM_DESTROY:
  11.  
  12.         PostQuitMessage(0);
  13.         return 0;
  14.  
  15.     case WM_CREATE:
  16.  
  17.         ShowWindow(hWnd, SW_SHOW);
  18.  
  19.         return 0;
  20.  
  21.     case WM_LBUTTONUP:
  22.         PlaySound(TEXT("test.wav"), NULL, SND_ASYNC | SND_FILENAME);
  23.         return 0;
  24.  
  25.     case WM_RBUTTONUP:
  26.         PlaySound(NULL, NULL, SND_PURGE);
  27.         return 0;
  28.  
  29.     }
  30.  
  31.     return DefWindowProc(hWnd, uMsg, wParam, lParam);
  32.  
  33. }
  34.  
  35. int APIENTRY wWinMain(
  36.     _In_ HINSTANCE hInstance,
  37.     _In_opt_ HINSTANCE hPrevInstance,
  38.     _In_ LPWSTR ipCmdLine,
  39.     _In_ int nCmdShow
  40. ) {
  41.  
  42.     WNDCLASSEXW wcex;
  43.  
  44.     wcex.cbSize = sizeof(WNDCLASSEX);
  45.  
  46.     wcex.style = CS_HREDRAW | CS_VREDRAW;
  47.     wcex.lpfnWndProc = WndProc;
  48.     wcex.cbClsExtra = 0;
  49.     wcex.cbWndExtra = 0;
  50.     wcex.hInstance = hInstance;
  51.     wcex.hIcon = NULL;
  52.     wcex.hCursor = NULL;
  53.     wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  54.     wcex.lpszMenuName = NULL;
  55.     wcex.lpszClassName = TEXT("TestWindow");
  56.     wcex.hIconSm = NULL;
  57.  
  58.     RegisterClassExW(&wcex);
  59.  
  60.     HWND hWnd = CreateWindowEx(0UL, TEXT("TestWindow"), TEXT("日本"), WS_OVERLAPPEDWINDOW,
  61.         CW_USEDEFAULT, 0, 640, 480, NULL, NULL, hInstance, NULL);
  62.  
  63.     if (!hWnd)
  64.     {
  65.         return FALSE;
  66.     }
  67.  
  68.     MSG msg;
  69.  
  70.     while (GetMessage(&msg, NULL, 0, 0) > 0) {
  71.         DispatchMessage(&msg);
  72.     }
  73.  
  74.     return (int)msg.wParam;
  75. }