显示图片汇总

LoadBitmap第一个参数分析 <br />我在程序中这样用的: <br />HBITMAP   hBitmap; <br />hBitmap   =   ::LoadBitmap(NULL,MAKEINTRESOURCE(IDB_SHINE)); <br />但是这样hBitmap始终为空,结果搜索了半天,才找到如下方式就好了,我想知道是为什么? <br />hBitmap   =   ::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_SHINE));<br /> <br / 阅读详情

显示图片汇总

上一章总结了加载图片的几种方法,这章我总结一下显示图片的几种常用方法,希望对各位有所帮助

1、用Picture控件显示图片

1、首先添加Picture控件,ID为IDC_IMG_BTM
2、定义 CBitmap* m_pBitmap;
3、导入图片,并定义ID为IDB_TEST_IMG
4、动态加载代码如下:
 CStatic* pImage = (CStatic*)GetDlgItem(IDC_IMG_BTM);
m_pBitmap = new CBitmap;
m_pBitmap->LoadBitmap(IDB_TEST_IMG);    
pImage->SetBitmap(HBITMAP(*m_pBitmap));
5、最后别忘了delete m_pBitmap指针。
示例(可更改图片大小):
CStatic *mPicture = (CStatic *)GetDlgItem(pictureGroup1[i]); 
HICON hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON_CHK), IMAGE_ICON, 16, 16, 0);    
mPicture->ModifyStyle(0x0,SS_ICON|SS_CENTERIMAGE);   
mPicture->SetIcon(hIcon); 

2、用DC显示图片

//创建DC    
CClientDC dc(GetDlgItem(资源ID));    
//获取图片内容    
BITMAP bm; 
CBitmap* hbmp = CBitmap::FromHandle(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1)));
hbmp->GetBitmap(&bm);
CDC dcMem;     
//创建兼容DC    
dcMem.CreateCompatibleDC(&dc); 
CBitmap *pOldBitmap=dcMem.SelectObject(hbmp);  
CRect lRect;   
//获取Static控件的大小范围  
m_bt_1.GetClientRect(&lRect);    
//在Static控件上显示位图       
//判断是否需要调整到适合画布   
dc.StretchBlt(lRect.left, lRect.top, lRect.Width()+100, lRect.Height()+100,
&dcMem, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);   
dc.SelectObject(pOldBitmap);

3、控件上显示图片

 HBITMAP hbitmap;
 //将pStatic指向要显示的地方
 CStatic *pStatic = NULL;
 //根据ID获取Static控件
 pStatic=(CStatic*)GetDlgItem(IDC_BUTTON1);
 //装载资源*.bmp
 hbitmap=(HBITMAP)::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));
 CBitmap hbmp;
 hbmp.Attach(hbitmap);
 //获取图片内容
 BITMAP bm;
 hbmp.GetBitmap(&bm);
 CDC dcMem;
 //创建兼容DC
 dcMem.CreateCompatibleDC(GetDC());
 CBitmap *pOldBitmap=(CBitmap*)dcMem.SelectObject(hbmp);
 CRect lRect;
 //获取Static控件的大小范围
 pStatic->GetClientRect(&lRect);
 //在Static控件上显示位图
 pStatic->GetDC()->StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),
  &dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
 dcMem.SelectObject(&pOldBitmap);

用这种方法可以在按钮上绘制图片

4、用com显示图片

#include<ocidl.h>
#include<olectl.h>

// lpstrFile:文件名(最好是包含路径在内) 
// hWnd 
// nScrWidth:输出图片的宽度 
// nScrHeight:输出图片的高度 
// nScrWidth、nScrHeight是输出图片的实际大小,换而言之是指缩放后的尺寸 

HRESULT ShowPic(TCHAR *lpstrFile,HWND hWnd,int nScrWidth,int nScrHeight)
{
	HDC hDC_Temp=GetDC(hWnd);
	
	IPicture* pPic ;
	IStream* pStm ;
	
	BOOL bResult ;
	
	HANDLE hFile=NULL ;
	DWORD dwFileSize,dwByteRead ;
	
	//打开硬盘中的图形文件 
	hFile=CreateFile(lpstrFile,GENERIC_READ,
		FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
	
	if(hFile!=INVALID_HANDLE_VALUE)
	{
		dwFileSize=GetFileSize(hFile,NULL);
		//获取文件字节数 
		
		if(dwFileSize==0xFFFFFFFF)
			return E_FAIL ;
	}
	else 
	{
		return E_FAIL ;
	}
	
	
	//分配全局存储空间 
	HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,dwFileSize);
	LPVOID pvData=NULL ;
	
	if(hGlobal==NULL)
		return E_FAIL ;
	
	//锁定分配内存块 
	if((pvData=GlobalLock(hGlobal))==NULL)return E_FAIL ;
	
	ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);
	//把文件读入内存缓冲区 
	
	GlobalUnlock(hGlobal);
	
	CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
	
	//装入图形文件 
	bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);
	
	if(FAILED(bResult))
		return E_FAIL ;
	
	OLE_XSIZE_HIMETRIC hmWidth ;
	//图片的真实宽度 
	OLE_YSIZE_HIMETRIC hmHeight ;
	//图片的真实高度 
	pPic->get_Width(&hmWidth);
	pPic->get_Height(&hmHeight);
	
	if(hmWidth!=0) nScrHeight=(int)((long double)nScrWidth*hmHeight/hmWidth);
	//将图形输出到屏幕上(有点像BitBlt) 
	bResult=pPic->Render(hDC_Temp,0,0,nScrWidth,nScrHeight,
		0,hmHeight,hmWidth,-hmHeight,NULL);
	
	pPic->Release();
	
	CloseHandle(hFile);
	//关闭打开的文件 
	
	if(SUCCEEDED(bResult))
	{
		return S_OK ;
	}
	else 
	{
		return E_FAIL ;
	}
}
这种方法有一个现成的封装类,下载地址: http://download.youkuaiyun.com/detail/windows_nt/5567871
加载图片汇总

latex图片插入问题汇总 latex图片插入问题 阅读详情

相关推荐

【QNX+Android虚拟化方案】55 - QNX 与 Android GVM 显示 Dump 图片方法汇总

【QNX+Android虚拟化方案】55 - QNX 与 Android GVM 显示 Dump 图片方法汇总

|~~~热爱生活、努力学习的小伙汁~~~| 1449

(VC2005) picture 控件显示16*16的Icon

vs2005编写对话框,上面放置一个picutre 控件,属性里面Type 设置为Icon, Real Size Image 设置为ture. Icon 源文件是 16*16的图片,但是在程序调用的时候,始终显示为32*32的大图标. 在代码中添加如下后实现。 CStatic *mPicture = (CStatic *)GetDlgItem(pictureGroup1[i]); HI...

weixin_30708329的博客 165

【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”

搭建sqli-labs靶场时,“Unable to connect to the database: security”报错解决

九芒星的博客 2992

使用16位汇编显示bmp位图

寻找了各种办法终于实现了显示256色的位图,但是防止数据段超过64k最终还是没有使用。还是写下来留作纪念吧。    首先我们需要了解清楚bmp文件的结构,下面是关于bmp(位图)结构体的介绍: 1. BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 2. BMP文件头(14字节) BMP文件头数据结构含有BMP文件的类型、文件大小

Working... 3173

LVGL v9的lv_scale控件实战:5分钟打造动态仪表盘(附完整代码)

本文详细介绍了LVGL v9中lv_scale控件的实战应用,通过5个关键步骤快速打造动态仪表盘。文章涵盖核心特性解析、代码实现、样式定制及性能优化,适用于工业HMI、智能家居等场景,并附完整代码示例。

gin88的博客 262

【BigWorld 游戏服务器引擎】Cell 架构设计介绍,及Java实现方案的探索

横向扩展(Scalability):通过动态增减CellApp和BaseApp的数量,可以轻松应对玩家人数的变化。世界可以做得非常大,只需增加更多的 Cell。负载分离(Load Separation):将不同性质的负载分离,避免了单一进程瓶颈。CPU 密集型的实时计算(CellApp)和 I/O 密集型的数据操作(BaseApp)互不影响。高效的视野管理(AOI):每个 Cell 只关心自己区域内和边界上的实体,大大降低了计算复杂度。容错性:某个CellApp。

代码时光 1205

图片控件、图片显示

mfc中所谓的图片空间,其实就是CStatic,只要调用它的SetBitmap()。 1.传统方法 //一个示例 CBitmap m_bitmapTest; CStatic* m_pMyStatic; //成员变量 ////////////////////////////////// m_pMyStatic = new CStatic(); m_pMyStatic->

mwx1234的专栏 459

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

Jupyter Notebook 中显示图片、音频、视频的方法汇总

本文总结了在Jupyter Notebook中显示图片、音频和视频的多种方法。图片显示支持IPython.display.Image、matplotlib、Pillow等多种方式;音频播放可通过IPython.display.Audio处理本地文件或音频数组;视频播放支持本地文件和网络视频,也可通过HTML嵌入在线视频。不同方法适用于不同场景,简单显示推荐使用IPython.display模块,处理数据则建议配合matplotlib等库。使用时需注意路径正确性、格式兼容性和文件大小问题。

WSSWWWSSW的博客 1528

110、3A 端到端调试:从 ISP register dump 到主观画质的完整调试流程

文章摘要 本文分享了ISP 3A(AE/AWB/AF)端到端调试的实战经验,通过具体案例解析常见问题排查方法。从硬件链路确认、寄存器dump分析、算法闭环验证到主观画质调优,提出了一套系统化调试流程。重点包括:如何通过示波器和寄存器抓包定位时序问题,AWB调试中black level校正的关键作用,AF闭环控制中hall传感器反馈的重要性,以及算法与硬件联调的"三板斧"方法论。作者强调3A调试本质是系统工程,需结合物理层信号测量、数据通路验证和算法状态跟踪,避免陷入局部优化陷阱。

sundong_81的博客 58

【100%通过率】华为od统一考试B卷【查找接口成功率最优时间段】Python 实现

服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,数组中的数值为0~100的整数, 给定一个数值(minAverageLost)表示某个时间段内平均失败率容忍值,即平均失败率小于等于minAverageLost,找出数组中最长时间段,如果未找到则直接返回NULL。

MISAYAONE的博客 5870

qt显示图片汇总

要直接画出来可用QPainter类的drawPixmap函数,本人没有用过,但是有人说这种方式速度很慢。本文主要记录label和toolButton显示图片的步骤和代码。 1.jpg转png 1)打开windows下的画图工具2)用鼠标左键把图片拉入画图工具3)点击另存为,选择png格式 2.添加资源文件 1)程序目录下新建image文件夹,把png格式的图片存入其中 2)添加资源文件,

lzh445096的博客 995

化工过程控制软件:Siemens PCS 7二次开发_(8).过程控制算法

在化工过程控制中,过程控制算法是实现自动化控制的关键技术之一。Siemens PCS 7 提供了丰富的控制算法库,但为了满足特定的工艺需求,往往需要进行二次开发。本节将详细介绍如何在 Siemens PCS 7 中进行过程控制算法的二次开发,包括常见的控制算法原理、实现方法和具体示例。

kkchenjj的博客 502

显示透明图片的方法汇总

显示透明图片的方法汇总 方法1:用Canvas的drawARGB方法。 @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //创建一张图片。 Bitmap bm = Bitmap.createBitmap(20, 20,

太木讷 2125

红火蚁巢穴AI智能识别,提供方案与思路!

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1045

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

php 显示图片,php实现随机显示图片方法汇总

php通过rand()函数产生随机数,这个函数可以产生一个指定范围的数字这段代码通过产生的随机数,随机选择图片方法一srand(microtime()*1000000);$num=rand(1,4);switch($num){case1:$image_file="/home/images/alfa.jpg";break;case2:$image_file="/...

weixin_34200416的博客 295

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

<转>显示图片汇总

1、用Picture控件显示图片 1、首先添加Picture控件,ID为IDC_IMG_BTM2、定义 CBitmap* m_pBitmap;3、导入图片,并定义ID为IDB_TEST_IMG4、动态加载代码如下:CStatic* pImage = (CStatic*)GetDlgItem(IDC_IMG_BTM);m_pBitmap = new CBitmap;m_pBitmap->L...

weixin_34355559的博客 90

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

如何用php写一个随机图片,php实现随机显示图片方法汇总

本文分享一个php实现的随机显示图片的函数,可以将指定文件夹中存放的图片随机地显示出来。有兴趣的朋友研究下吧。php通过rand()函数产生随机数,这个函数可以产生一个指定范围的数字这段代码通过产生的随机数,随机选择图片?123456789101112131415161718192021srand( microtime() * 1000000 );$num = rand( 1, 4 );switc...

weixin_39982933的博客 754

php随机抓取网站图片,php实现随机显示图片方法汇总

php通过rand()函数产生随机数,这个函数可以产生一个指定范围的数字这段代码通过产生的随机数,随机选择图片srand( microtime() * 1000000 );$num = rand( 1, 4 );switch( $num ){case 1: $image_file = "/home/images/alfa.jpg";break;case 2: $image_file = "/hom...

weixin_39744408的博客 274

php获取随机图片,php实现随机显示图片方法汇总_PHP

php通过rand()函数产生随机数,这个函数可以产生一个指定范围的数字这段代码通过产生的随机数,随机选择图片";?>方法二:方法三:************************************************/if($_GET['folder']){$folder=$_GET['folder'];}else{$folder='/images/';}//存放图片文件的位置...

weixin_31210347的博客 1186

python处理问题汇总三(字体显示,显示上标,x轴重叠,添加标签,保存图片等)

文章目录1. python中文显示问题2. python设置Times New Roman字体3. 字符串显示上标4. subplot绘图主标题(plt.suptitle)被覆盖5. 保存图片设置分辨率,图片显示不全的问题6. subplot绘制多张图片时,出现压缩图片的情况7. x轴重叠的问题8. python画图时添加标签 在python编程过程中可能遇到中文显示,英文字体设置,字符串上标显示,图片保存问题等问题。 1. python中文显示问题 方法一: # 解决中文显示问题 plt.rcParams

小朱小朱绝不认输的博客 5403

如何在python中显示电脑中的图片-python如何实现多个图片显示在屏幕上?

pygame的三个方法(屏幕上显示需要的图片)yuhu102319582018-12-16python将多幅图片显示在一张图片上wugui1111116282018-06-15iOS 图片显示原理potato51215742015-02-105_python将多张图片显示在一张图片上(20181218)weixin_410101987732018-12-182048小游戏的实现weixin_402...

weixin_37988176的博客 2460

解决php文字及图片显示乱码的问题

解决php文字及图片显示乱码的问题

jcoiwenwfkowe的博客 171

ppt图片在word中不能正常显示,只显示为矩形框的解决方法

ppt图片在word中不能正常显示,只显示为矩形框的解决方法

kodmoqn的博客 1260
上一篇: window核心编程-内核对象线程同步
下一篇: Windows核心编程-新旧API速查表
codinglf
博客等级 码龄16年 237粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值