CFile f;
CFileDialog fd(TRUE);
fd.DoModal();
CString fname,fpath;
fname=fd.GetFileName();
fpath=fd.GetPathName();
TRACE(fpath);
BeginWaitCursor();
if(!f.Open(fpath,CFile::modeRead))
{
AfxMessageBox("file open error");
} BITMAPFILEHEADER bmfHdr; // λͼÎļþÍ·½á¹¹
//LPBITMAPINFOHEADER lpBi;//Ö¸ÏòλͼͷÐÅÏ¢½á¹¹µÄÖ¸Õ룻
DWORD fsize=f.GetLength();
f.Read((LPSTR)&bmfHdr, sizeof(bmfHdr));
//µÃµ½Ð·ÖÅäÄÚ´æµÄÃû±ú
//½«hDig¾ä±úת»»³ÉÊý¾ÝÖ¸Õë
//зÖÅäÒ»¸öÄÚ´æ²¢µ½Ð·ÖÅäÄÚ´æµÄÃû±ú
HANDLE hDIB =GlobalAlloc(GMEM_MOVEABLE,fsize-sizeof(bmfHdr));
//TRACE("\d\d\dhello");
//´ËʱpDIBÊý¾Ý¿éÖжÁÈ¡µÄÊý¾Ý°üÀ¨Î»Í¼Í·ÐÅÏ¢¡¢Î»Í¼ÑÕÉ«±í¡¢Í¼ÏñÏñËصĻҶÈÖµ£»
LPSTR pDIB;
//µÃµ½Ð·ÖÅäÄÚ´æµÄÖ¸Õë
pDIB = (LPSTR) ::GlobalLock((HGLOBAL)hDIB);
if (f.ReadHuge(pDIB, fsize - sizeof(BITMAPFILEHEADER)) != fsize- sizeof(BITMAPFILEHEADER) )
{
TRACE("read pDIB err");
//break;
}
BITMAPINFOHEADER *bmhdr;
bmhdr=(BITMAPINFOHEADER*)pDIB;
//µÃµ½ÎļþÍ·µÄ´óС
TRACE("hello %d /n",bmhdr->biSize);
TRACE(" width %d",bmhdr->biWidth);
TRACE(" width %d",bmhdr->biHeight);
TRACE(" Bicount %d",bmhdr->biBitCount);
// LOGPALETTE *pPal;//¶¨ÒåÂß¼­µ÷É«°åÖ¸Õ룻
// pPal=new LOGPALETTE;//³õʼ»¯¸ÃÖ¸Õ룻
// CPalette *m_palDIB=new CPalette; //¶¨ÒåÒ»¸öµ÷É«°å
//³õʼ»¯µ÷É«°å½á¹¹
//
//pPal->palPalentry[i].
CClientDC dc(this);
HWND hwd=GetSafeHwnd();
HDC hdc;
hdc=::GetDC(hwd);
//dc.BitBlt(hdc,0,0,100,100,)
//»ñÈ¡±£´æͼÏñÏñËØÖµµÄ»º³åÇøµÄÖ¸Õ룻
LPSTR lpDIBBits;//Ö¸ÏòλͼÏñËصÄÖ¸Õ룻
DWORD s=sizeof(BITMAPINFOHEADER);
lpDIBBits=pDIB+sizeof(BITMAPINFOHEADER);//+sizeof(RGBQUAD); StretchDIBits(hdc,0,0,100,100,0,0,100,100,lpDIBBits,(LPBITMAPINFO)pDIB,DIB_RGB_COLORS,0);
CFile f;
CFileDialog fd(TRUE);
fd.DoModal();
CString fname,fpath;
fname=fd.GetFileName();
fpath=fd.GetPathName();
TRACE(fpath);
BeginWaitCursor();
if(!f.Open(fpath,CFile::modeRead))
{
AfxMessageBox("file open error");
} BITMAPFILEHEADER bmfHdr; //
//LPBITMAPINFOHEADER lpBi;//
DWORD fsize=f.GetLength();
f.Read((LPSTR)&bmfHdr, sizeof(bmfHdr));
HANDLE hDIB =GlobalAlloc(GMEM_MOVEABLE,fsize-sizeof(bmfHdr));
//TRACE("\d\d\dhello");
//
LPSTR pDIB;
//
pDIB = (LPSTR) ::GlobalLock((HGLOBAL)hDIB);
if (f.ReadHuge(pDIB, fsize - sizeof(BITMAPFILEHEADER)) != fsize- sizeof(BITMAPFILEHEADER) )
{
TRACE("read pDIB err");
//break;
}
BITMAPINFOHEADER *bmhdr;
bmhdr=(BITMAPINFOHEADER*)pDIB;
//
TRACE("hello %d /n",bmhdr->biSize);
TRACE(" width %d",bmhdr->biWidth);
TRACE(" width %d",bmhdr->biHeight);
TRACE(" Bicount %d",bmhdr->biBitCount);
// LOGPALETTE *pPal;//
// pPal=new LOGPALETTE;//
// CPalette *m_palDIB=new CPalette; // //
//
//pPal->palPalentry[i].
CClientDC dc(this);
HWND hwd=GetSafeHwnd();
HDC hdc;
hdc=::GetDC(hwd);
//dc.BitBlt(hdc,0,0,100,100,)
//
LPSTR lpDIBBits;//
DWORD s=sizeof(BITMAPINFOHEADER);
lpDIBBits=pDIB+sizeof(BITMAPINFOHEADER);//+sizeof(RGBQUAD); StretchDIBits(hdc,0,0,100,100,0,0,100,100,lpDIBBits,(LPBITMAPINFO)pDIB,DIB_RGB_COLORS,0);
//最的显示的总是黑框,不知为什么
CFile f;
CFileDialog fd(TRUE);
fd.DoModal();
CString fname,fpath;
fname=fd.GetFileName();
fpath=fd.GetPathName();
TRACE(fpath);
BeginWaitCursor();
if(!f.Open(fpath,CFile::modeRead))
{
AfxMessageBox("file open error");
} BITMAPFILEHEADER bmfHdr; //
//LPBITMAPINFOHEADER lpBi;//
DWORD fsize=f.GetLength();
f.Read((LPSTR)&bmfHdr, sizeof(bmfHdr));
HANDLE hDIB =GlobalAlloc(GMEM_MOVEABLE,fsize-sizeof(bmfHdr));
//TRACE("\d\d\dhello");
//
LPSTR pDIB;
//
pDIB = (LPSTR) ::GlobalLock((HGLOBAL)hDIB);
if (f.ReadHuge(pDIB, fsize - sizeof(BITMAPFILEHEADER)) != fsize- sizeof(BITMAPFILEHEADER) )
{
TRACE("read pDIB err");
//break;
}
BITMAPINFOHEADER *bmhdr;
bmhdr=(BITMAPINFOHEADER*)pDIB;
//
TRACE("hello %d /n",bmhdr->biSize);
TRACE(" width %d",bmhdr->biWidth);
TRACE(" width %d",bmhdr->biHeight);
TRACE(" Bicount %d",bmhdr->biBitCount);
// LOGPALETTE *pPal;//
// pPal=new LOGPALETTE;//
// CPalette *m_palDIB=new CPalette; // //
//
//pPal->palPalentry[i].
CClientDC dc(this);
HWND hwd=GetSafeHwnd();
HDC hdc;
hdc=::GetDC(hwd);
//dc.BitBlt(hdc,0,0,100,100,)
//
LPSTR lpDIBBits;//
DWORD s=sizeof(BITMAPINFOHEADER);
lpDIBBits=pDIB+sizeof(BITMAPINFOHEADER);//+sizeof(RGBQUAD); StretchDIBits(hdc,0,0,100,100,0,0,100,100,lpDIBBits,(LPBITMAPINFO)pDIB,DIB_RGB_COLORS,0);
//最的显示的总是黑框,不知为什么