在内存位图中绘图,并显示。代码如下:

HDC hdc=::GetDC(m_hWnd);  
RECT rect;    
GetClientRect(hwnd,&rect);    
int cxClient = rect.right;  
int cyClient = rect.bottom;  
  
//为显示设备创建一块相应的内存  
HDC hdcmem = CreateCompatibleDC(NULL);  
  
//创建位图  
HBITMAP hBitmap = CreateCompatibleBitmap(hdc,cxClient,cyClient);  
  
//将内存句柄和位图句柄绑定  
SelectObject(hdcmem,hBitmap);  
  
//画图  
FillRect(hdcmem,&rect,NULL);  
Rectangle(hdcmem,20,20,100,100);    
//显示到窗口上  
BitBlt(hdc,0,0,cxClient,cyClient,hdcmem,0,0,SRCCOPY);  
  
DeleteObject(hdcmem);  
DeleteObject(hBitmap);  
::ReleaseDC(m_hWnd,hdc);

要创建多个内存位图,可以多次调用CreateCompatibleDC和CreateCompatibleBitmap函数。

无论是在内存中绘图还是将一个位图文件显示到窗口上,都是这两个函是配合使用.如果不用CreateCompatibleBitmap函数,也可通过CBitMap加载一个张位图,并与内存DC关联。