显示位图问题,急!!!!!!!!!!
BITMAPFILEHEADER bii;
BITMAPINFO binn;
CFile openfile(filepath,CFile::modeRead);
openfile.Read(&bii,sizeof(BITMAPFILEHEADER));
openfile.Read(&binn,sizeof(BITMAPINFOHEADER));
LPBYTE Dib;
Dib = (LPBYTE)&binn + sizeof(BITMAPINFOHEADER);
//Dib = Dib + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
StretchDIBits(dc-> GetSafeHdc(),rect.left,rect.top,rect.Width(),rect.Height(),100,100,((LPBITMAPINFOHEADER)Dib)-> biWidth,((LPBITMAPINFOHEADER)Dib)-> biHeight,Dib,(LPBITMAPINFO)Dib,DIB_RGB_COLORS,SRCCOPY);
其他地方的代码绝对没有问题,这里想显示,运行完说什么就是没有任何显示,请问我哪里出错了啊?
[解决办法]
楼上说得对,你根本没有读出位图数据,那怎么能显示呢
[解决办法]
给你提个建议:先把文件中的所有数据读到内存中,或者用内存映射文件,再来用结构化指针(位图头等)访问这些数据。
[解决办法]
没用过这个函数,但即然是BMP,可以用LoadImage()直接装入文件,不用你自己去读。
HBITMAP bitmap=(HBITMAP)LoadImage(NULL,_T( "c:\\test.BMP "),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
CBitmap bmp;
bmp.Attach(bitmap))
CDC dcMemory;
CDC* pDC=GetDC();
dcMemory.CreateCompatibleDC(pDC);
dcMemory.SelectObject(&bmp);
pDC-> BitBlt(0,0,720,576,&dcMemory,0,0,SRCCOPY);
ReleaseDC(pDC);