Windows Gdi 的入门级教程文章 (VC SDK)(二)

2014-11-23 20:26:22 · 作者: · 浏览: 108
teCompatibleBitmap (hDestDC, rc.right, rc.bottom); HBITMAP hOldBitmap = ::SelectObject (hDC, hBitmap); //... 此处用hdc进行绘图 //... ::BitBlt (m_hDestDC, rc.left, rc.top, rc.Width(), rc.Height(), hDC, rc.left, rc.top, SRCCOPY); ::SelectObject (hDC, hOldBitmap);

  当然,这样用起来不太方便,可以将这些操作封装到一个叫CMemDC的对象中,利用构造和析构自动进行这些操作。直接使用CMemDC还有一个好处,调试GDI时,如果图形都在内存中绘制,那么还是看不到绘图过程。   代码如果这样写:

CRect rc; GetWindowRect(&rc); #ifdef _DEBUG CPaintDC dc; #else CPaintDC cdc; CMemDC dc(cdc.m_hDC, &rc); #endif

  那么就既能享受内存绘图的好处又能方便调试了。   入门篇先写到这里,以后有工夫再写进阶篇。