윈도우즈 api 코드 질문입니다

조회수 366회

define WM_USER 0x0400

define UM_GAMEOVER WM_USER+4

case WM_LBUTTONDOWN: hdc = GetDC(hWnd);

    q.x = LOWORD(lParam);
    q.y = HIWORD(lParam);

    for (int i = 0; i < 7; i++) { 
        for (int j = 0; j < 2; j++) {
            if (PtInRect(&Blocks[i][j], q)) {
                if (m_Glass[i][j])
                    MessageBox(hWnd, _T("강화"), _T("알림"), MB_OK);
                else 
                    MessageBox(hWnd, _T("깨짐"), _T("알림"), MB_OK);
            }
        }
    }

    if (CheckGameOver())
        SendMessage(hWnd, UM_GAMEOVER, 0, 0);

    ReleaseDC(hWnd, hdc);
    return 0;

case UM_GAMEOVER: _stprintf_s(str, _T("Do you want to restart?"));

    hitPosition = MessageBox(hWnd, str, _T("confirm"), MB_YESNO | MB_ICONQUESTION);

    if (hitPosition == IDNO)
        DestroyWindow(hWnd);
    else {
        SendMessage(hWnd, WM_CREATE, 0, 0);
        InvalidateRect(hWnd, NULL, TRUE);
    }
    return 0;

int CheckGameOver() { if (m_Glass == 0) return 1; else return 0; }

어제 윈도우즈 api에 관련해서 질문한 사람입니다. 또 다른 문제가 생겨서 질문 드립니다. 제 코드의 목적은 위에 보시다시피 게임오버 조건이 만족되었을때 게임을 종료하게 만드는게 목적입니다. CheckGameOver()함수에서 m_Glass가 0이면 1을 반환해 UM_GAMEOVER로 SendMessage하여 게임 종료하게 만드는게 목적인데, 어떤 부분이 틀려서 작동이 안되는지 모르겠습니다. 답변해주시면 감사하겠습니다

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)