设为首页 加入收藏

TOP

MFC技术积累——基于MFC对话框类的那些事儿3(二)
2017-10-11 17:20:56 】 浏览:9955
Tags:MFC 技术 积累 基于 对话 那些 事儿
our control notification handler code here
unsigned char* ImageBuffer=new unsigned char[ sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256 ]; unsigned char* ImageInfo = NULL; BITMAPFILEHEADER m_bitmapfileheader; BITMAPINFOHEADER* infoheader; RGBQUAD* palette; BITMAPINFO* bmi;; FILE* ImageFile; unsigned int BytesSize=0; if (NULL==(ImageFile=fopen("D:\\10.bmp","rb")))//从D盘中读取一幅位图 { printf("can not open the image file!"); return ; } else { fread(&m_bitmapfileheader,sizeof(BITMAPFILEHEADER),1,ImageFile);//读取文件头 //读取信息头与调色板数据块 fread(ImageBuffer , m_bitmapfileheader.bfOffBits - sizeof(BITMAPFILEHEADER) , 1 , ImageFile); bmi = (BITMAPINFO*)ImageBuffer; infoheader = &(bmi->bmiHeader); palette = bmi->bmiColors;      //位图信息头和实际数据的总字节数 BytesSize = m_bitmapfileheader.bfOffBits - sizeof(BITMAPFILEHEADER) + (infoheader->biWidth * infoheader->biHeight * (infoheader->biBitCount/8));
ImageInfo = new unsigned char[BytesSize]; fseek(ImageFile , sizeof(BITMAPFILEHEADER) , SEEK_SET);//跳过文件头 fread(ImageInfo , BytesSize , 1 , ImageFile); CWnd* mywnd = GetDlgItem(IDC_BITMAPAREA); CClientDC dc(mywnd); RECT rc; CBrush mybrush; CBrush* oldbrush; mywnd->GetClientRect(&rc); mybrush.CreateDIBPatternBrush(ImageInfo , DIB_RGB_COLORS); oldbrush = dc.SelectObject(&mybrush); dc.FillRect(&rc,&mybrush); dc.SelectObject(oldbrush); mybrush.DeleteObject(); } delete[] ImageBuffer; delete[] ImageInfo; }

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇英特尔? 实感? 深度摄像头代码示.. 下一篇windows快速打开命令窗口方式[利..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目