CFilefile;CStringcs;cs=dlg.GetPathName();file.Open(cs,CFile::modeRead);Bitmapfileheader=(BITMAPFILEHEADER*)newBYTE[sizeof(BITMAPFILEHEADER)];file.Read(Bitmapfileheader,sizeof(BITMAPFILEHEADER));if((Bitmapfileheader-bfType)!=0x4d42){MessageBox(\"Notbmp\");return;}number=(Bitmapfileheader-bfOffBits)-sizeof(BITMAPFILEHEADER);Bitmapinfo=(BITMAPINFO*)newBYTE[number];file.Read(Bitmapinfo,number);number_image=(Bitmapinfo-bmiHeader.biWidth)*(Bitmapinfo-bmiHeader.biHeight)*4;image=newBYTE[number_image];file.Read(image,number_image);Width=Bitmapinfo-bmiHeader.biWidth;Height=Bitmapinfo-bmiHeader.biHeight;bOpenImage=TRUE;Invalidate();file.Close();OnPaint里else{if(bOpenImage){CPaintDCdc(this);::StretchDIBits((HDC)dc,(800-Width)/2,(600-Height)/2,Width,Height,0,0,Width,Height,image,Bitmapinfo,DIB_RGB_COLORS,SRCCOPY);}CDialog::OnPaint();} |