我是vc++的初学者,想要用vc++实现对bmp图片的读入,可是不知道怎么实现,请高手帮忙!谢谢~~
解决方案 »
- 创建的这个画笔的宽度起作用,颜色不管怎么设置,都是黑色
- mfc中关于dib位图储存bmp文件的问题
- 关于指针的问题
- 为何VS 2005对应的MSDN比VC 6.0对应的MSDN难用?
- MFC CRecodeSet类的难题,顶者有分
- javaScript怎么将字符串传入Activex中?
- 如何编程实现鼠标单击双击?
- 请问什么是回调函数?
- CMIWnd能播放mpeg格式的文件吗?
- 绘制贝塞尔Bezier曲线算法!!!
- 急!在WIN NT下,直接执行文件一切正常,但采用桌面快捷方式打开却无法连接数据库!!!
- Windows注销当前用户时,怎么让系统向程序发送一次WM_QUERYENDSESSION后的消息处理中告诉Windows不要再发送?
这样的贴子很多,查下以前的贴子
BITMAPINFOHEADER* m_pBMIH;
BOOL bIsok=false;
if (NULL==pFileData)
{
CPicture cp;
btmap=cp.ReadPict(pBmpName);
if (btmap==NULL)
{
MessageBox(hwnd,pBmpName,"无法读取",0);
return false;
}
}
m_pBMFH = (BITMAPFILEHEADER*)pFileData;
if((pFileData[0]!='B')||(pFileData[1]!='M'))
{
MessageBox(hwnd,"无法识别的文件格式","错误提示",0);
return FALSE;
}
m_pBMIH = (BITMAPINFOHEADER*)(pFileData+sizeof(BITMAPFILEHEADER));
if(m_pBMIH->biSize!=sizeof(BITMAPINFOHEADER))
{
MessageBox(hwnd,"无法识别的格式","错误提示",0);
return FALSE;
}
HDC hdc=GetDC(hwnd);
ULONG bfoffBits= 0;
bfoffBits=m_pBMFH->bfOffBits;
if (btmap==NULL)
btmap=CreateDIBitmap(hdc,m_pBMIH,CBM_INIT,pFileData+bfoffBits,
(LPBITMAPINFO)m_pBMIH,DIB_RGB_COLORS);
if (NULL==btmap)
{
DWORD errcode = GetLastError();
char buffer[20];
_ltoa(errcode,buffer,10);
MessageBox(hwnd,buffer,"err",0);
return false;
} RECT crect;
HDC hMemdc;
GetClientRect(hwnd,&crect);
hMemdc=CreateCompatibleDC(hdc);
SetDIBits(hdc,btmap,0,500,pFileData,(BITMAPINFO*)&m_pBMIH,DIB_RGB_COLORS); SelectObject(hMemdc,btmap);
StretchBlt(hdc,crect.left,crect.top,crect.right - crect.left
,crect.bottom - crect.top,hMemdc,crect.left,crect.top,
m_pBMIH->biWidth,m_pBMIH->biHeight,SRCCOPY);
//BitBlt(hdc,crect.left,crect.top,crect.right - crect.left
// ,crect.bottom - crect.top,hMemdc,
// crect.left,crect.top,SRCCOPY);
DeleteDC(hMemdc);
ReleaseDC(hwnd,hdc);
return true;
}