Я делаю неудачную имитацию взрыва, меняя цвет фона между красным и оранжевым.
Нужно ли мне использовать DeleteObject или как-то освободить объект после использования SetClassLongPtr (hwnd, GCLP_HBRBACKGROUND, (LONG) CreateSolidBrush (RGB (255, 0, 0)))?
void ExplosionVisuals(HWND hwnd)
{
for (int i = 0; i < 10; ++i)
{
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG) CreateSolidBrush( RGB(255, 0, 0) ) ); // Red
InvalidateRect(hwnd, NULL, true);
UpdateWindow(hwnd);
Sleep(100);
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG) CreateSolidBrush( RGB(255, 153, 0) ) ); // Orange
InvalidateRect(hwnd, NULL, true);
UpdateWindow(hwnd);
Sleep(100);
}
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG) GetStockObject(WHITE_BRUSH) );
InvalidateRect(hwnd, NULL, true);
UpdateWindow(hwnd);
return;
}