Как написать на WinAPI чтобы окно открывалось на полный размер?

Для того чтобы создать окно на полный размер экрана с использованием WinAPI, вам понадобится выполнить несколько шагов.

1. Сначала вам нужно создать класс окна, который будет определять основные параметры окна, такие как имя класса окна, процедура обработки окна и другие атрибуты. Для этого используйте функцию RegisterClassEx():

WNDCLASSEX wc;
ZeroMemory(&wc, sizeof(WNDCLASSEX));

wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = L"WindowClass";

if (!RegisterClassEx(&wc))
{
    MessageBox(NULL, L"Failed to register window class!", L"Error", MB_OK | MB_ICONERROR);
    return 0;
}

При создании класса, важно задать имя класса (lpszClassName), так как мы будем использовать его при создании окна.

2. Затем можно создать окно с использованием функции CreateWindowEx(). В этой функции нужно указать класс создаваемого окна, имя окна, стиль окна и другие параметры, такие как позиция и размер окна. Для создания окна на полный размер экрана можно использовать функции GetSystemMetrics() и CreateWindowEx() следующим образом:

int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);

HWND hWnd = CreateWindowEx(0,
    L"WindowClass",
    L"Окно",
    WS_OVERLAPPEDWINDOW | WS_VISIBLE,
    0, // X position
    0, // Y position
    screenWidth, // Width
    screenHeight, // Height
    NULL,
    NULL,
    hInstance,
    NULL);

В этом примере мы устанавливаем позицию окна в верхний левый угол экрана (x и y равны 0), а ширину и высоту окна устанавливаем равными ширине и высоте экрана, полученным с помощью функций GetSystemMetrics().

3. Наконец, нужно создать процедуру обработки окна (WndProc), чтобы обрабатывать события окна, такие как закрытие окна или нажатие кнопки. Пример простейшей процедуры обработки окна может выглядеть так:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

Это базовая структура процедуры обработки окна, которая закрывает окно, когда пользователь пытается закрыть его. Вы можете добавить обработку других событий в зависимости от ваших потребностей.

Вот и все! Теперь у вас должно быть окно, открытое на полный размер экрана. Обратите внимание, что этот пример демонстрирует базовую реализацию, и вы можете настроить и доработать его в соответствии со своими потребностями.