1. Начинаем разработку компьютерной игры.

    ​Окно Windows

    Пора добавить в нашу заготовку небольшой код для вывода пустого окна на экран. Для начала поработаем с заголовочным файлом Precompiled.h. Чтобы создать окно нам понадобятся следующие классы ATL: CWindowImpl, CWindow и CWinTraits, которые описаны в заголовочном файле atlwin.h. Для удобства создадим структуру данных DesktopWindow (по сути это класс окна). Также переопределим макрос для верификации критичных по использованию ресурсов функций (ATLVERIFY).

    Итак, добавим код в класс нашего окна. Используем макрос для объявления окна и зададим его карту сообщений, а также напишем функции для обеспечения минимальной функциональности приложения.

    DECLARE_WND_CLASS_EX(L"window", CS_HREDRAW | CS_VREDRAW, -1);

    BEGIN_MSG_MAP(DesktopWindow)

    MESSAGE_HANDLER(WM_PAINT, PaintHandler)

    MESSAGE_HANDLER(WM_DESTROY, DestroyHandler)

    END_MSG_MAP()

    LRESULT PaintHandler(UINT, WPARAM, LPARAM, BOOL &)

    {

    PAINTSTRUCT ps;

    VERIFY(BeginPaint(&ps));

    Render();

    EndPaint(&ps);

    return 0;

    }

    LRESULT DestroyHandler(UINT, WPARAM, LPARAM, BOOL &)

    {

    PostQuitMessage(0);

    return 0;

    }

    void Render()

    {

    }

    Теперь перейдем в основной файл программы. Здесь мы создадим объект нашего класса и цикл обработки сообщений.

    DesktopWindow Hanoi;

    VERIFY(Hanoi.Create(nullptr, 0, L"Задача о ханойских башнях"));

    MSG message;

    BOOL result;

    while (result = GetMessage(&message, 0, 0, 0))

    {

    if (-1 != result)

    {

    DispatchMessage(&message);

    }

    }

    Теперь скомпилируем программу и, наконец, увидим наше пустое окно.

    В этом обсуждении появились новые комментарии: 1
    Комментариев: 0