WinAPI, вывести строку 10 раз

Всем добрый день. Согласно заданию для зачёта, в главном окне (с определённым цветом) нужно 10 раз вывести строку. В приведённом коде текст выводится с заданным шрифтом и размером, но я без понятия, как один текст отобразить десять раз.

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;

    const char* str = "Привет, Win32 API!!!";

    SetClassLong(hWnd, GCL_HBRBACKGROUND, (LONG)CreateSolidBrush(RGB(50, 0, 0)));

    switch (message)
    {
    case WM_COMMAND:
            {
            }
        break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            hdc = BeginPaint(hWnd, &ps);

            static LOGFONT lf; //создаём экземпляр LOGFONT
            lf.lfCharSet = DEFAULT_CHARSET; //значение по умолчанию
            lf.lfPitchAndFamily = DEFAULT_PITCH; //значения по умолчанию
            strcpy(lf.lfFaceName, "Times New Roman"); //копируем в строку название шрифта
            lf.lfHeight = 20; //высота
            lf.lfWidth = 10; //ширина
            lf.lfWeight = 40; //толщина
            lf.lfEscapement = 0; //шрифт без поворота

            HFONT hFont = CreateFontIndirect(&lf); //Cоздали шрифт
            SelectObject(hdc, hFont); //Он будет иметь силу только когда мы его выберем
            SetTextColor(hdc, RGB(255, 0, 255)); //зададим цвет текста
            SetBkColor(hdc, RGB(0, 0, 255)); //зададим цвет фона

            TextOut(hdc, 100, 100, str, strlen(str));//выведем текст

            DeleteObject(hFont);
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

Цикл for сделать, в нем вызывать

с разными координатами.

Не подскажешь, как конкретно записать функцию for для вызова 10 раз строки с разными координатами? Экспериментируя, пробовал так, но в результате выходила полная околесица, притом (что немудрено), загружая проц на 100%

            for (int i = 1; i < 10; ++i)
            {
                for (int y = 100; y < 600; y+50)
                {
                    i = TextOut(hdc, 100, y, str, strlen(str));
                }
            }

А зачем два цикла?
Можно ж во втором подобрать числа, чтоб получилось 10 итераций.
Или наоборот, оставить только первый и вычислять y как-то так: 100 + (50 * i).
Или можно две переменные в цикле for (int a = 0, b = 100; a < 100; a++, b += 42).

пропущено =


При вставке кода на форумы надо нажимать кнопку Код.

О, спасибо большое, последняя вариация оказалась кстати!)