cbitmap以及图形按钮的问题 小弟这几天刚学MFC,碰到一个问题,,就是cbitmap这个类不能加载JPG,PNG这些格式只能加载bmp格式的图片么,,还有就是自绘按钮,,我想用PNG来贴图,,但不知道怎么加载这种格式的只能用bmp,,但这样就没了我要的透明,,求指导 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定义一个按钮类用GDI+ 画,再绑定实体按钮 http://www.codeproject.com/Articles/26887/A-user-draw-button-that-supports-PNG-files-with-tr看看这个吧! PNG图片用GDI+来加载, 使用GDI+需要:1. 包含GdiPlus.h头文件, 和引用GdiPlus.lib库2. 应用程序初始化的时候调用GDI+的初始化函数GDI+有个类Bitmap, 可以从文件, 资源, 流加载图片, 可以用GetHBitmap将图片转换为BITMAP格式(带有ALPHA值)另外只用GDI的话, 去了解下AlphaBlend和TransparentBlt两个函数 用CImage类即可,可以处理JPG,PNG格式图片。#include <atlimage.h>//包含头文件void XXXX类::OnPaint(CDC* /*pDC*/){ .............................//下面是贴图代码 char path[256]; GetCurrentDirectory(256,path); CString filepath = path; filepath += "\\res\\19.JPG";//你的JPG图片全路径 image.Load(filepath); HBITMAP hBitmap=image.Detach(); CBitmap bmp; bmp.Attach(hBitmap); //对单文档项目适用 CMainFrame* pframe = (CMainFrame*)AfxGetApp()->m_pMainWnd; CImgTestView* pview = (CImgTestView*)pframe->GetActiveView(); CDC* pdc = pview->GetDC(); CDC memdc; memdc.CreateCompatibleDC(pdc); memdc.SelectObject(&bmp); pdc->BitBlt(0,0,3000,3000,&memdc,0,0,SRCCOPY);//贴图,尺寸自定 memdc.DeleteDC(); bmp.DeleteObject(); .............................} VC 6.0 中使用Windows Media Play控件生成DLL文件在其它电脑用不了 SelectObject到底有什么用,还是没看懂.. 关于在CArray<CString, CString>中成员删除字符 VC ADO access 图片 查找 显示 在VC2005中如何为工具栏上的图形按钮添加消息映射 8007007e 问题 关于用scsi指令读写U盘的问题! 请问如何在windows下动态改变桌面图片 自动读取pdf文件的源程序 求检测道路直线去除杂点问题(用CVI) cbitmap以及图形按钮的问题 求大神指教怎么用MFC显示tiff图片
1. 包含GdiPlus.h头文件, 和引用GdiPlus.lib库
2. 应用程序初始化的时候调用GDI+的初始化函数GDI+有个类Bitmap, 可以从文件, 资源, 流加载图片, 可以用GetHBitmap将图片转换为BITMAP格式(带有ALPHA值)另外只用GDI的话, 去了解下AlphaBlend和TransparentBlt两个函数
#include <atlimage.h>//包含头文件
void XXXX类::OnPaint(CDC* /*pDC*/)
{
.............................//下面是贴图代码 char path[256];
GetCurrentDirectory(256,path);
CString filepath = path;
filepath += "\\res\\19.JPG";//你的JPG图片全路径
image.Load(filepath);
HBITMAP hBitmap=image.Detach();
CBitmap bmp;
bmp.Attach(hBitmap);
//对单文档项目适用
CMainFrame* pframe = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CImgTestView* pview = (CImgTestView*)pframe->GetActiveView();
CDC* pdc = pview->GetDC();
CDC memdc;
memdc.CreateCompatibleDC(pdc);
memdc.SelectObject(&bmp);
pdc->BitBlt(0,0,3000,3000,&memdc,0,0,SRCCOPY);//贴图,尺寸自定
memdc.DeleteDC();
bmp.DeleteObject(); .............................
}