void place::draw(HDC hdc)
{
HBITMAP hbmMine = NULL;
HDC hdcMine = CreateCompatibleDC(hdc);
HWND hwnd;
hwnd = GetActiveWindow();
hbmMine = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_MINE_0));
if(hbmMine == NULL)
MessageBox(hwnd, "Could not load resource!", "Error", MB_OK | MB_ICONEXCLAMATION);
SelectObject(hdcMine, hbmMine);
BitBlt(hdc, x, y, 16, 16, hdcMine, 0, 0, SRCCOPY); // x, y su clanice klase i predstavljaju poziciju polja u okviru prozora
DeleteDC(hdcMine);
}
Kada pozovem metodu u WM_PAINT-u u nekoj petlji npr:
place p[10][10];
.
.
.
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
for(int i=0;i<20;i++)
for(int j=0;j<20;j++)
p[i][j].draw(hdc,mine_clear);
EndPaint(hwnd, &ps);
}
break;
i kad krenem da resize-ujem prozor salje se WM_PAINT poruka koja ponovo iscrtava resajzovani prozor, to mi je jasno, ali pri vecim matricama mi
izbaci onaj messagebox iz metode - Could not load resource!...
Kontam da kad mi to izbaci da messagebox salje jos WM_PAINT poruka i da otprilike ostanem zaglavljen u beskonacnoj petlji.
Ali zasto mi to izbacuje samo pri velikim matricama npr ovoj 20x20 ili 10x10, na matrici 2x2, 3x3 mi to ne izbacuje??? Zasto?
Da li nesto nisam dobro uradio u samoj metodi za crtanje ili je preopterecenje resorsa?
Da li neko moze da mi objasni zasto se to desava i sta ne valja, sta trebam da ispravim?
Hvala unapred
Vajda