我正在使用C++ gdi gdi +编写程序。 在gdi +位图上绘制大图像比较慢,是使用gdi + api。 所以我用下面的方法来绘制:无法在GDI +上绘制位图对象
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);
这段代码完美运行一段时间。 但是,当通过创建大量具有大尺寸CBitmap的兼容DC时全系统池已满。它似乎无法在Bitmap上绘制任何东西。
发生了什么事?当这部分代码失败了,我还可以对显卡采用GDI +的API
GetLastError函数()的返回8.
非常感谢抽奖!
请在调用StretchDIBits()失败后,使用由GetLastError()返回的值更新我们。 – arul 2009-08-04 02:12:32