bingo009 Temat założony przez niniejszego użytkownika |
WinAPI - rysowanie w pętli zawiesza program » 2015-04-13 16:35:59 Witam was serdecznie, otóż mam zrobić wizualizację ruchu w WinAPI. Mam jednak problem, tworzę sobię taką pętlę główną: void ClearScreen( HWND okno ) { HDC screenDC = GetDC( okno ); HBRUSH brush = CreateSolidBrush( RGB( 255, 255, 255 ) ); SelectObject( screenDC, brush ); Rectangle( screenDC, 180, 0, GetSystemMetrics( SM_CXSCREEN ), GetSystemMetrics( SM_CYSCREEN ) ); DeleteObject( brush ); ReleaseDC( okno, screenDC ); }
void DrawObject( HDC hdcOkno, int x, int y ) { SetPixel( hdcOkno, x - 1, y - 1, 0xFF0000 ); SetPixel( hdcOkno, x, y - 1, 0xFF0000 ); SetPixel( hdcOkno, x + 1, y - 1, 0xFF0000 ); SetPixel( hdcOkno, x - 1, y, 0xFF0000 ); SetPixel( hdcOkno, x, y, 0xFF0000 ); SetPixel( hdcOkno, x + 1, y, 0xFF0000 ); SetPixel( hdcOkno, x - 1, y + 1, 0xFF0000 ); SetPixel( hdcOkno, x, y + 1, 0xFF0000 ); SetPixel( hdcOkno, x + 1, y + 1, 0xFF0000 ); }
obx = 200; oby = 10;
while( GetAsyncKeyState( VK_ESCAPE ) == 0 ) { ClearScreen( hwnd ); DrawObject( hdcOkno, obx, oby ); }
Funkcja ClearScreen czyści ekran rysując na nim biały kwadrat(ekran nie jest czyszczony od punktu (0,0), bo mam po lewo panel kontrolny i nie chcę, aby był on czyszczony), a funkcja DrawObject rysuje kwadrat 3x3 pikseli, bo pojedyńczy piksel jest słabo widoczny. Problem polega na tym, że absolutnie nic się nie rysuje - program się wiesza, ale reaguje na klawisz Escape. Wiem, że WinApi nie służy do rysowania, ale jestem zmuszony zrobić program w WinAPI i nie mogę nic na to poradzić, chociaż wolałbym w np. SFML, bo tam napisałbym taki program w godzinę max, a WinAPI się męczę. Źle robię pętlę główną, czy źle się zabieram za rysowanie(nie pisałem nigdy w WinAPI nic takiego)? W WinAPI programuje się proste gry, więc ufam, że da radę jakoś to załatwić. |
bingo009 Temat założony przez niniejszego użytkownika |
» 2015-04-14 18:19:47 Byłbym wdzięczny za jakiś trop, jak to ma wygląda, obecnie siedzi to w zdarzeniu, po wywołaniu przycisku, nie wiem jak to powinno wyglądać dobrze.
Edit: Przez swoje próby pogubiłem się już w kodzie, tak więc pobrałem sobie prosty przykład rysowania grafiki w WinAPI i użyłem tego jako szablonu - rysowanie jest już szybkie i się nie wiesza aplikacja, tak więc problem rozwiązany. |