Czyszczenie ekranu z FillRect

0

Witam. Mam oto taki kodzie gdzie wyświetla mi na ekranie niebieski kwadrat. Chciałbym zrobić tak, że po 5 sek tek kwadrat zniknie bez zamykania aplikacji, tylko nigdzie nie mogę znaleźć funkcji która by usuwała FillRect lub czyściła ekran z tej funkcji.

#include <iostream>
#include <Windows.h>

int main()
{
	Sleep(3000);

	ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);

	HDC hDC_Desktop = GetDC(0);

	RECT rect = { 20, 20, 200, 200 };
	HBRUSH Brush = CreateSolidBrush(RGB(0, 0, 255));

	FillRect(hDC_Desktop, &rect, Brush);

	DeleteObject(Brush);

	Sleep(10000);

	return 0;
}
1

Nie ma czegoś takiego, jak "usunięcie FillRect". Jak coś zostanie na oknie namalowane, to są dwie opcje, żeby się tego pozbyć:
1) zakrycie tego czegoś czymś innym, czyli np. narysowanie w tym miejscu prostokąta w kolorze tła
**2) **wymuszenie odmalowania okna - chociażby korzystając z czegoś w stylu https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-invalidaterect

2

Dziękuję za nakierowanie. Działa :) Poniżej daję kod gdyby ktoś potrzebował

#include <iostream>
#include <Windows.h>

int main()
{
	Sleep(3000);
	ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);

	HDC hDC_Desktop = GetDC(0);
HWND okno = GetActiveWindow();

	RECT rect = { 20, 20, 200, 200 };
	HBRUSH Brush = CreateSolidBrush(RGB(0, 0, 255));

	FillRect(hDC_Desktop, &rect, Brush);

	Sleep(5000);

	InvalidateRect(okno, 0, 0);

	DeleteObject(Brush);

	Sleep(10000);
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1