求助,位图显示,颜色不对,右边小部分在左边显示颜色正常,剩下的红色和蓝色颠倒
这是我的代码class BMPFile
{
CFile cfile;
CFileException e;
BYTE* pBuffer;//位图数据
BITMAPFILEHEADER fileHead;//位图文件头
BITMAPINFOHEADER infoHead;//位图信息头
CDC dcmem;//显示图像的缓冲DC BITMAPINFO info;
public:
BMPFile(LPCTSTR);
~BMPFile(void);
bool BMPOpen(CDC*);
};
#include "StdAfx.h"
#include "BMPFile.h"
BMPFile::BMPFile(LPCTSTR path)
{
cfile.Open(path,CFile::modeRead,&e);//打开位图
cfile.Read(&fileHead,sizeof(BITMAPFILEHEADER));
if(fileHead.bfType!=0x4D42)
exit(-1);
cfile.Read(&infoHead,sizeof(BITMAPINFOHEADER));
pBuffer=new BYTE[fileHead.bfSize-sizeof(BITMAPFILEHEADER)];
cfile.Seek(sizeof(BITMAPFILEHEADER),CFile::begin);
cfile.Read(pBuffer,fileHead.bfSize-sizeof(BITMAPFILEHEADER));
info.bmiHeader=infoHead;
}
BMPFile::~BMPFile(void)
{
delete pBuffer;
cfile.Close();
}
bool  BMPFile::BMPOpen(CDC* pDC)
{

//dcmem.CreateCompatibleDC(pDC);
::StretchDIBits(pDC->GetSafeHdc(),0,0,infoHead.biWidth+100,infoHead.biHeight+100,0,0,infoHead.biWidth,infoHead.biHeight,pBuffer,&info,DIB_RGB_COLORS,SRCCOPY);
return 1;
}BMPFile b(L"f:\\Users\\yyf\\Desktop\\项目\\image\\table24.bmp");
// CMFCViewvoid CMFCView::OnDraw(CDC* pDC)
{
CMFCDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
b.BMPOpen(pDC);
// TODO: 在此处为本机数据添加绘制代码
}