windows编程笔记【九】使用图片资源

Windows 编程 之 使用图片资源 主要理论步骤: 加载图片资源到图片对象中 获取显示窗口的设备号 创建一个与显示窗口相兼容的设备内存 将图片对象载入设备内存中 从设备内存中复制图片到显示窗口 具体实现: 加载图片资源到图片对象中 HBITMAP hbm; //创建一个图片(位图)对象句柄 hbm = (HBITMAP)LoadImage(NULL, "图片路径",图片类型,图片宽度,图片高度,选项); 选项 意义 LR_DEFAULTCOLOR 以常规方式载入图像 LR_LOADFROMFILE 从文件载入 阅读详情

在GDI中使用图片资源需要需要以下的步骤:

  1. 从文件中加载图片到(BITMAP)对象里
  2. 建立一个余窗口DC兼容的内存DC
  3. 内存DC使用步骤1的对象
  4. 把内存DC内容粘贴到窗口DC里

 

步骤1:

使用LoadImage函数读取图像。

HBITMAP hbmp; //定义一个HBITMAP变量
hbmp = (HBITMAP)LoadImage(NULL, "r_map.bmp", IMAGE_BITMAP, 600, 450, LR_LOADFROMFILE);//读取r_map.bmp到hbmp里

 

步骤2:

建立与窗口DC兼容的内存DC。

内存DC不是真正的设备DC,可以说他是一个缓冲区,win里不允许直接上窗口DC里写入,只能通过内存DC粘贴到窗口DC里。

HDC mdc;//定义内存DC
mdc = CreateCompatibleDC(hdc); //填入窗口DC即可

 

步骤3:

选用内存贴图

这一步把我们读取的图片对象(HBITMAP)复制到内存DC里。

SelectObject(mdc,hbmp); 

 

步骤四:

贴图,把内存DC中的位图复制显示到DC上,这个操作被称为 “贴图”。贴图中使用的函数是BitBlt()

BitBlt(hdc, 50, 50, 350, 250, mdc, 200, 100, SRCCOPY);

BitBlt函数参数有必要说下,是这样的。

BitBlt(目标dc, 目标dc x坐标, 目标dc y坐标, 贴到的宽度, 贴到的高度, 内存DC, 内存DC X坐标, 内存DC Y坐标, SRCCOPY);

 

放一下全部的代码:

BOOL InitInstance(HINSTANCE hinstance)
{
	HWND hwnd;
	HDC hdc;
	HDC bufdc;
	if (!(hwnd = CreateWindowEx(NULL,
		"WINCLASS1",	//winclass.lpszClassName设置的字符,是类的别名。
		"YouWindows",	//窗口的名称
		WS_OVERLAPPEDWINDOW | WS_VISIBLE,	//一些窗口属性
		0, 0,			//窗口位置
		600, 450,		//窗口宽高
		NULL,			//父窗口句柄
		NULL,			//附属窗口句柄
		hinstance,		//WinMain第一个实参,程序句柄。
		NULL			//null就可以了
	)))
		return false;

	hdc = GetDC(hwnd); //获得窗口DC
	mdc = CreateCompatibleDC(hdc); //创建于窗口DC匹配的内存DC
	hbmp = (HBITMAP)LoadImage(NULL, "r_map.bmp", IMAGE_BITMAP, 800, 600, LR_LOADFROMFILE); //读取图片
	SelectObject(mdc, hbmp);//把图片写入到内存dc里
	MyPaint(hdc);//调用一下绘图函数
	return true;
}

void MyPaint(HDC hdc)
{
	BitBlt(hdc, 0, 0, 800, 600, mdc, 0, 0, SRCCOPY); //贴图到内存dc
}

 效果如下

C++:加载图片资源 新建一个空项目 在项目路径下有个创建一个res文件夹,里面存放资源图片 假如就这三张图片 下一步,在项目中添加资源文件 然后选择前面的三张图片 上一步确定后,这里弹出来一个框 让自定义资源类型,估计是因为这张图片是jpg格式的,那就自定义一个格式吧:JPG 添加了资源后,稍等片刻,rc文件和头文件会自动写入资源的信息 现在加载资源文件就好了,写个例子测试一下 #include <windows.h> #include<ios... 阅读详情

相关推荐

Windows编程:图标资源、光标资源、字符串资源、加速键资源、WM_PAINT消息、绘图

Windows编程:图标资源、光标资源、字符串资源、加速键资源、WM_PAINT消息、绘图

Jackey_Song的博客 644

Win32加载图片到窗口

适合初学gdi图像处理的新手,分享给大家,因为我也是这么免费学习的

weixin_40933560的博客 597

MFC Windows 程序设计[148]之图片的加载与拖动

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。......

hnjzfwy的博客 317

VC从文件中加载图片

用MFC做GDI开发的朋友肯定熟悉CBitmap类,该类封装了HBITMAP对象,简化了关于HBITMAP的API操作,如LoadBitmap方法可直接加载资源中指定ID的图片,但是很多情况下我们需要从文件中加载图片,CBitmap类就没有提供这样的方法了。下面我总结几种我知道的从文件加载图片的方法: 1.使用API函数LoadImage,指定LR_LOADFROMFILE标志。如:

方克明的专栏 1769

掌握Windows程序中图片路径的处理技术

图片资源管理涉及资源的存储、加载、缓存以及版本控制等方面。良好的管理方法应确保图片资源在不同设备和平台间正确无误地呈现,同时最小化对性能的不良影响。路径是一种用于定位文件或目录的字符串。它告诉操作系统如何从一个位置导航至另一个位置。在计算机系统中,路径通常由目录(文件夹)名组成,这些目录名通过特定的分隔符(如Windows系统的反斜杠,Unix/Linux系统的正斜杠)连接起来。在编程语言中,路径分为绝对路径和相对路径,它们各有其特点和使用场景。

weixin_35757191的博客 700

编程图片资源+本人博客代码所需图片资源

编程使用的图片资源与本人Qt简易画板博客需要使用的图标。图标,资源。

Windows程序设计(2):载入一幅图像并显示

载入一张Bitmap图像(JPEG应该可以),在屏幕上显示出来。重点为DC,CompatibleDC。

qcyfred的博客 7518

Windows下生成函数关系调用图

免费软件,可自动分析C/C++/Java/Python/C#/Objective-C等项目的源代码并生成函数调用关系图,支持源代码定位,可快速查找调用链

C#窗体Winform,如何嵌入图片添加图片,使用图片资源?

1.首先,打开工具箱,找到PictureBox控件 2.打开PictureBox的属性面板,设置Image属性 3.准备嵌入图片资源 图片资源有两个地方,一个是全局的在Properties下的Resources.resx文件。 另一个是在专属于某窗体使用的图片资源,位置在窗体下的resx文件中,如上图的第2个红圈就是。 4.设置Image属性,打开弹窗 本地资源,对应的是专属于某窗体使用的资源。 项目资源文件,则是大家都可以使用的资源。 5.Resources文件夹 不

C#开发 5万+

编程资源(图标素材)

有24大类几千个图标资源打包分享哦 办公 互联网 建筑 交通 娱乐 体育 游戏 卡通 苹果 水果

编程常用的素材(含png、jif、bmp、jpg图片、图标)

对编程极有帮助的图标素材,适合各种语言用。和大家一起分享。。。

mac如何获取API的资源图片 和 Windows系统下如何查看API资源图片

mac如何获取API的资源图片 和 Windows系统下如何查看这些API资源图片 Apple 对 iPhone 应用程序中的 png 图片进行了特殊的处理,在 png 文件头之后加了一个非标准的 CgBI 数据段,IDAT 段图像数据也没有传统的压缩数据头和尾,并且红色和蓝色是反的,这样就无法在 Mac 或 Windows 下不能正常使用了。 如何处理???

DDCXYZL的博客 1712

OPNET卫星节点仿真避坑指南:为什么你的STK轨道文件导入后位置不对?

本文深入解析OPNET卫星节点仿真中STK轨道文件导入后位置异常的常见问题,揭示坐标系差异(ECI与ECF)、时间基准不匹配等关键因素。通过修改.SA文件头标识、统一时间基准等解决方案,帮助工程师避免仿真失真,提升卫星通信系统仿真的准确性。特别适用于STK与OPNET协同工作的卫星网络仿真场景。

weixin_30335575的博客 601

Visual Studio添加图片资源到exe

Visual Studio添加图片资源到exe,实现从exe内部资源加载背景图

qq_39451737的博客 1万+

大白映射 宝马Esys编程设码映射、USB设备映射

大白映射,宝马Esys设码编程、USB设备映射

denson0394的博客 4803

【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现

摘要:YOLOv4在目标检测领域实现了精度与速度的平衡,通过CSPDarknet53骨干网络、SPP+PANet特征融合及CIoU损失函数等创新,在MS COCO数据集达到65.7% AP50,V100显卡实现62FPS实时检测。核心优化包括Mosaic数据增强、自对抗训练和解耦头结构,显著提升小目标检测和遮挡场景鲁棒性。代码实现采用CSP模块和SPP多尺度池化,兼顾计算效率与检测性能,为工业落地提供高效解决方案。(149字)

一碗白开水一 1358

深入Windows编程资源文件介绍:全面解析Windows编程核心

深入Windows编程资源文件介绍:全面解析Windows编程核心 【下载地址】深入Windows编程资源文件介绍 《深入Windows编程》是雷军先生于2000年出版的经典著作,全面解析Windows编程知识,深受编程爱好者推崇。此资源文件为本书的PDF版本,包含10个章节,虽为图片格式,阅读体验稍逊,但由于资源稀缺,...

gitblog_06720的博客 512

【数据集处理】中国地面气候资料日值数据集(V3.0)(含MATLAB全代码)

简介数据集数据处理

WW、forever的博客 1万+

《深入Windows编程》资源文件介绍

《深入Windows编程》资源文件介绍 【下载地址】深入Windows编程资源文件介绍 《深入Windows编程》是雷军先生于2000年出版的经典著作,全面解析Windows编程知识,深受编程爱好者推崇。此资源文件为本书的PDF版本,包含10个章节,虽为图片格式,阅读体验稍逊,但由于资源稀缺,仍具极高价值。我们秉持共享精...

gitblog_06743的博客 435

基于大模型最大化电力交易收益(策略与代码实践)

新一代电力交易系统正借助大型语言模型(LLM)实现智能化转型。面对可再生能源占比提升带来的市场波动性加剧,传统交易策略已难以应对。LLM通过多模态能力,能够实时处理海量异构数据,包括政策公告、设备检修信息、天气报告等非结构化数据,构建更精准的电力市场预测模型。智能交易系统主要包含三大核心模块:市场情报感知与理解器、融合LLM的短期电价预测模型和自适应交易策略生成器。这些模块协同工作,可在几分钟内完成事件分析、价格预测和策略生成,显著提升交易效率。系统还能实现跨市场套利和动态风险管理,但需注意数据质量、模型验

专注AI大模型,软件混淆,授权 1263

RandLA-Net Tensorrt 推理 c++

RandLA-Net 实现 Tensorrt 部署.

J。 1111

Windows使用Nginx配置本地文件代理(查看本地资源或图片)

一、前言 我们在实际开发中会经常遇到把图片上传到服务器上,比如七牛云、阿里云、腾讯云一些提供服务的商家。但是我们的图片隐私也会泄露,所以我们还是上传到本地,使用Nginx来代理到我们本地图片。这样就可以保证图片安全和机密性了!小编开始也是一头雾水,不太熟悉Nginx,在公司大佬的帮助下,顺利完成了代理。当然我们项目发布到服务器,也是直接保存在服务器上的某个文件夹下,进行Nginx代理即可,为了防止服务器收到攻击,可以携带上token,这个小编也不太明白,需要的同志自行百度吧!! 二、下载安装Nginx 1.

小王博客基地 1万+

1 电科院FTU检测标准学习笔记-外观检查

作者简介:本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验。

sixtome 1852

VisualC#中如何添加使用资源中的图片

本实例介绍C#中如何给一个Project资源中添加图片,并如何使用这些添加到资源中的图片。使用本法添加图片后,程序可以正常单独运行,而不需要随程序拷贝图片。

telenet123的博客 4127

RK3588平台开发系列讲解(DMA篇)DMA engine使用

Linux 内核的 DMA 引擎提供了一组完整的接口,用于申请和释放 DMA 通道、准备 DMA 描述符、启动和控制 DMA 传输,以及同步和管理缓存。通过这些接口,内核能够高效地处理异步的 DMA 传输任务,减少 CPU 的干预,提高数据传输的效率。

内核笔记 1835

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Windows Phone 资源图片使用 (1)

1.1 概述 WP7中的图片资源是在代码中使用的外部文件。这些文件作为应用程序的一部分,被编译到应用程序当中。WP7中会用到大量的图片资源文件,如应用程序列表图标、Tile背景、程序启动画面、应用程序的图标、SplashScreenImage、背景图片,主题应用等大量使用场景。 本节我们将讲解如何使用图片资源,如何选择图片资源格式,BuildAction使用“Content”还是“Resour

TRYME1919的专栏 551

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: windows编程笔记【八】画笔与画刷
下一篇: windows编程笔记【十】透明背景效果
崔佳宇_
崔佳宇_ 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄10年 1万+粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值