Я пишу программу на c ++ gdi gdi +.
Рисование большого изображения на gdi + растровое изображение выполняется медленно с использованием gdi + api.
Поэтому я использовал следующий способ рисования:
Bitmap img(xxx);
Graphics gr(&img);
HDC dc = gr.GetHDC();
::StretchDIBits(
dc,
rec.left, rec.top,
(rec.right - rec.left), (rec.bottom - rec.top),
m_recRegin.left , m_recRegin.top,
m_recRegin.right - m_recRegin.left, m_recRegin.bottom - m_recRegin.top,
XXX, XXX, DIB_RGB_COLORS, SRCCOPY);
gr.ReleaseHDC(dc);
этот код прекрасно работает некоторое время.
Но когда общесистемный пул заполнен, создается множество совместимых DC с большим размером CBitmap. Кажется, не может нарисовать что-либо на растровом изображении.
Что случилось? когда эта часть кода потерпела неудачу, я все еще могу рисовать на графике, используя API GDI +
GetLastError () возвращает 8.
Большое спасибо!