Exemplo n.º 1
0
	MenuBehaviour::MenuBehaviour(Game& game, ResourcesManager& resources)
		: m_game(game),
		m_resources(resources)
	{ 
		InitializeMenuItems();
		SetMenuItemsPosition();
	}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        if (OnCommand(hwnd, LOWORD(wParam)))
            break;
        else
            return DefWindowProc(hwnd, message, wParam, lParam);

    case WM_INITMENUPOPUP:
        InitializeMenuItems(reinterpret_cast<HMENU>(wParam));
        break;

    case WM_PAINT:
        OnPaint(hwnd);
        break;

    case WM_ERASEBKGND:
        return true;

    case WM_SIZE:
        OnSize(hwnd);
        break;

    case WM_WINDOWPOSCHANGED:
        {
            HMONITOR monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONULL);
            if (monitor != g_monitor)
            {
                g_monitor = monitor;
                if (g_renderer != NULL)
                    g_renderer->SetMonitor(g_monitor);

                InvalidateRect(hwnd, NULL, TRUE);
            }
        }
        return DefWindowProc(hwnd, message, wParam, lParam);

    case WM_LBUTTONDOWN:
        OnMouseDown(hwnd);
        break;

    case WM_MOUSEMOVE:
        OnMouseMove(hwnd);
        break;

    case WM_LBUTTONUP:
        OnMouseUp(hwnd);
        break;

    case WM_DESTROY:
        PostQuitMessage(0);
        break;

    default:
        return DefWindowProc(hwnd, message, wParam, lParam);
    }

    return 0;
}