Добрый день.
Я пытаюсь выводить каждый раз при изменении размеров окна строку в случайном положении и цвете, при этом сохраняя предыдущий вывод. Строка в новом цвете и положении выходит, а вот предыдущий текст теряется при вызове WM_PAINT
Вот код ветки оконного обработчика сообщений
case WM_PAINT:
{
InvalidateRect(hwnd, NULL, FALSE);
hdc = BeginPaint(hwnd, &ps);
old_text_color = SetTextColor(hdc, RGB(rand() % 256, rand() % 256, rand() % 256));
old_bk_color = SetBkColor(hdc, NULL);
old_bk_mode = SetBkMode(hdc, TRANSPARENT);
TextOut(hdc, rand() % 40, rand() % 40, L"Hello, World!", strlen("Hello, World!"));
EndPaint(hwnd, &ps);
ReleaseDC(hwnd, hdc);
return(0);
} break;
Также пробовал проверять на изменение в главном цикле приложения, но результат тот же
while (TRUE)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT) break;
TranslateMessage(&msg);
if (msg.message == WM_PAINT)
{
old_text_color = SetTextColor(hdc, RGB(rand() % 256, rand() % 256, rand() % 256));
old_bk_color = SetBkColor(hdc, NULL);
old_bk_mode = SetBkMode(hdc, TRANSPARENT);
TextOut(hdc, rand() % 40, rand() % 40, L"Hello, World!", strlen("Hello, World!"));
}
DispatchMessage(&msg);
}
}
Заранее спасибо!