>>966 の内容具体的にするとこういう事。ほんとに基本。てか DirectX以前の話。
ついでに「普通switchだよな」って話は多分このこと

LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
 switch(msg) {
  //case WM_CLOSE:    // ゲームの業務ロジック側じゃなくてwindow管理側の処理としてなんか他にあれば追加
  case WM_DESTROY:   // Closeされると結局これが来るので
   PostQuitMessage(0);  // WM_QUIT を送出するのでMainループ抜け
   return 0;
 return DefWindowProc(hwnd , msg , wp , lp);
}

以下WinMain中 --
MSG msg;
while (GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg); // whileの条件でmsgが WM_QUITの時、条件が偽
return msg.wParam;