Cześć, zacznę może od tego, że obudowuję sobie WinApi w klasy. Jedną z klas jest DeviceContext (kontekst urządzenia), który (na chwilę obecną) składa się m.in. z: tła, pióra, pędzla i różnych funkcji służących do rysowania.
Konstruktor tej klasy (nie wchodząc w szczegóły) wygląda tak:
DeviceContext::DeviceContext(HWND h_win) : pen(&hdc), brush(&hdc), background(&hdc)
{
hdc = GetDC(h_win);
h_window = h_win;
saving_number = 0;
}
Zacząłem się jednak zastanawiać nad używaniem obiektu owej klasy w wiadomości WM_PAINT
, w której to domyślnie wykorzystuje się funkcję BeginPaint()
.
No i mam pytanie (wątpliwość), czy zamiast funkcji BeginPaint()
mogę z powodzeniem wykorzystywać GetDC()
z dodaniem InvalidateRect()
oraz ValidateRect()
?
Czy funkcja BeginPaint() robi coś jeszcze?
Moja wątpliwość wynika ze struktury tagPAINTSTRUCT, która zawiera jakieś 3 zmienne (fRestore, fIncUpdate, rgbReserved[32]), które są przetwarzane przez system.