图像已经load到内存,怎么返回该图像的句柄 CBitmap Bitmap;if (Bitmap.LoadBitmap(FileName)){}BITMAP bmp;Bitmap.GetBitmap(&bmp); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Loadd的时候将句柄保存起来 CBitmap bmp;HBITMAP hBmp;转换:hBmp=(HBITMAP)bmp.GetSafeHandle(); 主要是这个图像不是bmp的,是什么jpeg的tiff等类型的 MFC提供的CWnd只有默认加载BMP文件的接口,对JPG等图像是不支持的,而实际中经常需要用到非BMP的图片,在VC中加载.JPG格式的图片,有两种方法,用流对象加载和用IPicture接口加载。JPEG是否可以转换成BMP? 还有一种更简单的方法VC MFC 提供的 API LoadBitmap / LoadImage 类 CBitmap 等都只能操作 BMP 位图,图标。对于其他常用的 JPG / JPEG / GIF / PNG 格式,它无能为力。VC 下怎样才能加载各种非 BMP 格式的图片呢? 下面介绍一种最简单的办法。用 CImage 类的 Load 函数加载图片,之后用 Detach 取得 HBITMAP 句柄。取得图片的HBITMAP 句柄后就可以像操作 BMP 图片一样处理 JPG / JPEG / GIF / PNG 格式的图片了。具体代码如下: #include “atlimage.h” CImage img; HRESULT ret = img.Load(filename ); // filename 是要加载的文件名(包含路径) HBITMAP bitmap = img.Detach(); //像操作 BMP 图片一样处理图片 ,例如:显示图片CBitmap cBitmap;CClientDC* pDC = new CClientDC(this);BITMAP bitmap;CDC memdc;cBitmap.Attach(hBitmap);memdc.CreateCompatibleDC(pDC);memdc.SelectObject(hBitmap);cBitmap.GetBitmap(&bitmap);pDC->StretchBlt(0, 0, bitmap.bmWidth, bitmap.bmHeight, &memdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY); vc6平台下使用BCGControlBar资源介绍 vs2010动态加菜单 怎么把串口接收来的数据付给一个数组,SerialPort类 【求教】三维人脸模型的变形 如何使用DLL加载另外一个DLL 怎么才能让你指定的行,颜色反转 急啊!!如何对数据进行HTTP协议封装,VC编程实现。谢谢! 关于CSpinCtrl控件的问题! 请问大家有没有比较好的报警音乐(wav格式的)?谢谢! ZwQueryInformationThread 能否找出线程是否被暂停 关于串口编程的疑问 [求教]activeX 的 MFC 多个窗口 嵌入 同一框架中不同的网页
Loadd的时候将句柄保存起来
HBITMAP hBmp;
转换:hBmp=(HBITMAP)bmp.GetSafeHandle();
CClientDC* pDC = new CClientDC(this);
BITMAP bitmap;
CDC memdc;
cBitmap.Attach(hBitmap);
memdc.CreateCompatibleDC(pDC);
memdc.SelectObject(hBitmap);
cBitmap.GetBitmap(&bitmap);
pDC->StretchBlt(0, 0, bitmap.bmWidth, bitmap.bmHeight, &memdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);