我正在使用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