Новый участник
Сообщения: 8
Благодарности: 0
|
Профиль
|
Отправить PM
| Цитировать
Сперва виводил так:
/*BITMAP bm;
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmOld = (HBITMAP) SelectObject(hdcMem, (HBITMAP) hBitmap);
GetObject(hBitmap, sizeof(bm), &bm);
BitBlt(hdc, x, y, bm.bmWidth, bm.bmHeight, hdcMem,0,0, SRCCOPY);
SelectObject(hdcMem, hbmOld);
DeleteDC(hdcMem);*/
А это должна быть двойная буферизаци но чета неработает
BITMAP bm;
HDC hdcMem;
HBITMAP hbmMem;
HANDLE hOld;
PAINTSTRUCT ps;
// Создаем off-screen DC для двойной буферизации
hdcMem = CreateCompatibleDC(hdc);
hbmMem = CreateCompatibleBitmap(hdc, bm.bmWidth, bm.bmHeight );
hOld = SelectObject(hdcMem, hbmMem);
// Здесь рисуем в hdcMem
BitBlt(hdc, x, y, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);
// Освобождаем память
SelectObject(hdcMem, hOld);
DeleteObject(hbmMem);
DeleteDC (hdcMem);
return 0;
Пишет Run-Time Check Failure #3 - The variable 'bm' is being used without being initialized.
|