在内存位图中绘图,并显示。代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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关联。
本文转自Chinayu201451CTO博客,原文链接: http://blog.51cto.com/9233403/1968325,如需转载请自行联系原作者