VC++在内存中绘图

简介:

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

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,如需转载请自行联系原作者






相关文章
|
1月前
|
C++
【C++】深入解析C/C++内存管理:new与delete的使用及原理(二)
【C++】深入解析C/C++内存管理:new与delete的使用及原理
|
1月前
|
编译器 C++ 开发者
【C++】深入解析C/C++内存管理:new与delete的使用及原理(三)
【C++】深入解析C/C++内存管理:new与delete的使用及原理
|
1月前
|
存储 C语言 C++
【C++】深入解析C/C++内存管理:new与delete的使用及原理(一)
【C++】深入解析C/C++内存管理:new与delete的使用及原理
|
30天前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
89 21
|
18天前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
21天前
|
存储 C语言 C++
【C++打怪之路Lv6】-- 内存管理
【C++打怪之路Lv6】-- 内存管理
34 0
【C++打怪之路Lv6】-- 内存管理
|
1月前
|
存储 C语言 C++
【C/C++内存管理】——我与C++的不解之缘(六)
【C/C++内存管理】——我与C++的不解之缘(六)
|
1月前
|
程序员 C语言 C++
C++入门5——C/C++动态内存管理(new与delete)
C++入门5——C/C++动态内存管理(new与delete)
57 1
|
1月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
124 1
|
1月前
|
存储 安全 程序员
【C++篇】深入内存迷宫:C/C++ 高效内存管理全揭秘
【C++篇】深入内存迷宫:C/C++ 高效内存管理全揭秘
59 3