MFC-在控件上显示BMP图片
2016-03-18 17:27
423 查看
在控件上绘制位图信息
// 位图结构体 BITMAPINFO *pBmpInfo; // 位图二进制数据 BYTE * pBmpData; // 位图文件的头信息 BITMAPFILEHEADER bmpHeader; // 位图文件中的位图信息 BITMAPINFOHEADER bmpInfo; CFile bmpFile; if (!bmpFile.Open(_T("D://verisign.bmp"), CFile::modeRead | CFile::typeBinary)) { AfxMessageBox(L"打开失败"); } // 读取位图文件的头信息 if (bmpFile.Read(&bmpHeader, sizeof(BITMAPFILEHEADER)) != sizeof(BITMAPFILEHEADER)) AfxMessageBox(L"读取bmpHeader"); // 读取位图文件中位图信息 if (bmpFile.Read(&bmpInfo, sizeof(BITMAPINFOHEADER)) != sizeof(BITMAPINFOHEADER)) AfxMessageBox(L"读取bmpInfo"); // 初始化位图信息 pBmpInfo = (BITMAPINFO *)new char[sizeof(BITMAPINFOHEADER)]; // 把位图信息拷贝给位图结构体 memcpy(pBmpInfo, &bmpInfo, sizeof(BITMAPINFOHEADER)); // 计算位图的实际字节数 DWORD dataBytes = bmpHeader.bfSize - bmpHeader.bfOffBits; // 初始化位图实际数据 pBmpData = (BYTE*)new char[dataBytes]; // 从文件中读取剩下的位图数据 bmpFile.Read(pBmpData, dataBytes); bmpFile.Close(); //显示图像,获得pictrue控件窗口的句柄 CWnd *pWnd = GetDlgItem(IDC_SHOW); CRect rect; //获得pictrue控件所在的矩形区域 pWnd->GetClientRect(&rect); //获得pictrue控件的DC CDC *pDC = pWnd->GetDC(); //指定拉伸模式 pDC->SetStretchBltMode(COLORONCOLOR); StretchDIBits(pDC->GetSafeHdc(), 0, 0, bmpInfo.biWidth, bmpInfo.biHeight, 0, 0, bmpInfo.biWidth, bmpInfo.biHeight, pBmpData, pBmpInfo, DIB_RGB_COLORS , SRCCOPY);
相关文章推荐
- 如何控制开放HTTPS服务的weblogic服务器
- Spring Boot 使用 Druid 和监控配置
- linux如何查看磁盘剩余空间
- Windows Server 2008 双网卡 断网问题 总结
- Merge工具
- 电商干货!Banner图设计之商品图该怎么玩(上集)
- 【运维监控】ubuntu14 下zabbix服务端安装时缺少依赖解决
- CMakeup
- aidl ( 六) 加入序列化对象传输
- Linux下多线程查看工具(pstree、ps、pstack)
- 2016年一级建造师考试报名指南
- JavaScript 语言中的 this
- 配置hadoop开发环境参考链接
- linux重启和关闭系统命令
- 解决Android Graphical Layout 界面效果不显示
- 解决Android Graphical Layout 界面效果不显示
- VSAN入门到精通-吴秋林-专题视频课程
- 使用spring boot快速构建spring框架的maven项目
- 工厂模式
- FMDB的使用