Wind32 GDI在内存中绘制彩色位图

1创建兼容的内存DC

hPicture为创建的静态文本框控件句柄

LRESULT OnPaint(HWND hWnd)
{ PAINTSTRUCT ps;
HDC hdc = ::BeginPaint(hWnd, &ps); //1.创建静态文本框控件DC
HDC hPictureDc = GetDC(hPicture); //2.创建和窗口DC兼容的内存DC,
HDC hMenDc = CreateCompatibleDC(hdc);

//3.创建内存位图
//这要注意,如果创建和内存DC兼容的位图就只有黑白色,不会有彩色
//所以要创建实际对象DC.窗口DC或静态控件DC兼容的内存位图

    HGDIOBJ hBitmap = CreateCompatibleBitmap(hdc, 500, 400);

    //把位图选入内存DC中
HGDIOBJ hOldBitmap = SelectObject(hMenDc, hBitmap); //给内存填充一个白色的背景色,如不填充背景色为黑色
RECT rect = { 0,0,500,400 };
FillRect(hMenDc, &rect,(HBRUSH) GetStockObject(WHITE_BRUSH)); //绘制你要绘制的位图
DrawBitmap(hMenDc, 500, 400); //把内存DC中的位图复制到静态控件上显示出来
//我这是缩放复制,原样复制可以用BiBlt函数
StretchBlt(hPictureDc, 0, 0, 300, 200, hMenDc, 0, 0, 500, 400, SRCCOPY); //释放GDI对象资源 SelectObject(hMenDc, hOldBitmap);
DeleteObject(hBitmap);
DeleteDC(hMenDc);
DeleteDC(hPictureDc); EndPaint(hWnd, &ps);
return LRESULT();
}

这是不填充背景色的效果

这是填充背景色为白色的效果

这是创建内存位图时选的内存DC兼容的效果

Win32 GDI 在内存中绘制彩色的位图的更多相关文章

  1. 如何将内存中的位图数据绘制在DC上

    假如你定义了一个位图类,里面包含位图头,位图信息头,调色板,位图数据.然后你按照位图的格式将位图文件读入你的类中,现在你知道了位图的全部信息了.主要信息包含在位图信息头里面,数据则在位图数据缓冲里面. ...

  2. iOS之在内存中绘图

    与直接在UIView控件上绘图不同,在内存中绘图时,需要开发者自己准备绘图环境,Quartz 2D提供了一个非常便捷的函数:UIGraphicsBeginImageContext(CGSize siz ...

  3. 怎么用ChemDraw 15.1 Pro绘制彩色结构

    ChemOffice 15是最新的ChemDraw化学工具套件,合理的使用这套软件可以大幅度的提高研究人员的工作效率.也有一些化学老师使用这套化学绘图软件教学,其可以绘制彩色结构有效增强教案说服力并吸 ...

  4. Win32 GDI 非矩形区域剪裁,双缓冲技术

    传统的Win32通过GDI提供图形显示的功能,包括了基本的绘图功能,如画线.方块.椭圆等等,高级功能包括了多边形和Bezier的绘制.这样app就不用关心那些图形学的细节了,有点类似于UNIX上的X- ...

  5. (续)一个demo弄清楚位图在内存中的存储结构

    本来续---数字图像处理之位图在计算机中的存储结构一文,通过参考别人的代码,进行修改和测试终于成功运行. 该实例未使用任何API和相关类,相信如果对此实例能够完全理解那么将有进一步进行数字图像处理的能 ...

  6. vs中调试程序查看变量在内存中的内容的方法

    vs中调试程序 查看变量在内存中的内容的方法 https://blog.csdn.net/guojg1988/article/details/42922149 原文链接:http://www.sows ...

  7. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二) 代码工程地址: https:/ ...

  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第六章:在Direct3D中绘制

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第六章:在Direct3D中绘制 代码工程地址: https://gi ...

  9. 在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区

    在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区? 1 为什么要有Survivor区 先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪 ...

  10. In-Memory:在内存中创建临时表和表变量

    在Disk-Base数据库中,由于临时表和表变量的数据存储在tempdb中,如果系统频繁地创建和更新临时表和表变量,大量的IO操作集中在tempdb中,tempdb很可能成为系统性能的瓶颈.在SQL ...

随机推荐

  1. python重拾基础第一天

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  2. Windows下Qt5程序打包发布

    Windows下Qt5程序打包发布与图标设置 原文(有删改):https://blog.csdn.net/qq_39105333/article/details/114779650 设置程序图标 默认 ...

  3. 嵌入式必看!全志T113-i+玄铁HiFi4核心板硬件说明资料分享

    目 录 1 硬件资源 2 引脚说明(篇幅问题,暂不提供详细内容) 3 电气特性 4 机械尺寸 5 底板设计注意事项 硬件资源 SOM-TLT113核心板板载CPU.ROM.RAM.晶振.电源.LED等 ...

  4. LitCTF 2023 部分wp

    LitCTF 2023 PWN 只需要nc一下~ 根目录下的是假flag,真的在环境变量里 口算题卡 简单的计算题 import pwn io = pwn.remote("node5.ann ...

  5. Windows在待机后重新进入桌面出现资源管理器无响应的解决方案

    问题 在日常使用Windows操作系统的过程中,我们可能会遇到一种较为特殊的情况--在系统待机后重新激活桌面时,资源管理器出现无响应现象.这一问题不仅影响用户体验,还可能导致剪切板功能异常,进而影响到 ...

  6. oeasy教您玩转vim - 34 - # 查找进阶

    ​ 查找进阶 回忆上节课内容 上次是搜索,是全文搜索 和我们以前的行内有点像 / 正向,? 反向 n 保持方向,N 改变方向 hls 让搜索结果高亮 wrapscan 可以从头搜索 noh 取消本次高 ...

  7. oeasy教您玩转python - 003 - # - 继续运行

    ​ 继续运行 回忆上次内容 在解释器里玩耍 print("Hello World") 1+1 编写了 py 文件 运行了 py 文件 这次我们继续丰富这个文件 分析 py 文件 我 ...

  8. JavaScript高级~数组方法reduce

    reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值. 有点抽象,意思可以看做每个元素执行之后,都会有一个汇总结果,你可以通过这个汇总结果 ...

  9. 如何免费提取PDF里的图片-pdfimages使用教程

    写在前面 本随笔是非常菜的菜鸡写的.如有问题请及时提出. 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 动机 ...

  10. 【ELK】Kibana-7.13.1版本 启动报错 Centos6

    报错信息: [root@centos6-1 gcc-4.8.2]# /opt/kibana-7.13.1-linux-x86_64/bin/kibana /opt/kibana-7.13.1-linu ...