如题

解决方案 »

  1.   

    CString   StrFilter="位图文件(*.bmp)|*.bmp|所有文件(*.*)|*.*||";
    CFileDialog  Dlg(TRUE,NULL,NULL,NULL,StrFilter,this);
    CString StrFileName;
    if(!Dlg.DoModal()==IDOK)
    {
    return ;
    }
    StrFileName=Dlg.GetPathName();
    CFile MyFile;
    if(!MyFile.Open(StrFileName,CFile::modeRead))
    {
    AfxMessageBox("1");
        return;
    }
    BITMAPFILEHEADER bmfHeader;
    //读位图文件头信息
    if (MyFile.Read((LPSTR)&bmfHeader, sizeof(bmfHeader)) != sizeof(bmfHeader))
    {
    AfxMessageBox("2");
        return ;
    }
    //判断是否是BMP
    if (bmfHeader.bfType != ((WORD) ('M' << 8) | 'B'))
    {
    AfxMessageBox("3");
          return ;
    }
    //读位图头信息
    BITMAPINFOHEADER bmiHeader; 
    if (MyFile.Read((LPSTR)&bmiHeader, sizeof(bmiHeader)) !=sizeof(bmiHeader))
    {
    AfxMessageBox("4");
         return ;
    }
    //获得大小信息,并显示
    int bmWidth=bmiHeader.biWidth;
    int bmHeight=bmiHeader.biHeight;
    CString StrInfo;
    StrInfo.Format("%s位图的大小为:
                            %d X %d",StrFileName,bmiHeader.biWidth,bmiHeader.biHeight);
    MessageBox(StrInfo,"信息提示",MB_OK);