请问VC6里如何显示PNG格式的图片,可以使用封装好的类,也可以使用GDI+,但能否给我个具体的代码。谢谢!

解决方案 »

  1.   

    http://blog.csdn.net/roger_77/archive/2006/11/04/1365619.aspx
      

  2.   

    //读取外部Image文件
    Image * LoadImage( LPCTSTR lpszFilePath)
    {
    HANDLE hFile = ::CreateFile( lpszFilePath
    , GENERIC_READ
    , FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE
    , NULL
    , OPEN_EXISTING
    , NULL
    , NULL
    );
    VERIFY(hFile); DWORD dwSize = ::GetFileSize( hFile, NULL); HGLOBAL hMem = ::GlobalAlloc(GMEM_FIXED, dwSize);
    LPBYTE pMem = (LPBYTE)::GlobalLock(hMem);
    DWORD dwRead = 0;
    ::ReadFile( hFile, pMem, dwSize, &dwRead, NULL);
    ::CloseHandle(hFile);
    VERIFY( dwSize != 0 );
    VERIFY( dwRead == dwSize ); IStream * pStream = NULL;
    ::CreateStreamOnHGlobal( hMem, FALSE, &pStream); Image * pImage = Image::FromStream(pStream); ::GlobalUnlock(hMem);
    pStream->Release(); return pImage;
    }//LoadImage
      

  3.   

    //显示 Graphics graph(hdcMemory); graph.SetPageScale(1.0);
    graph.SetPageUnit(UnitPixel);
    graph.SetSmoothingMode(SmoothingModeNone);
    // Draw the background
    graph.DrawImage( m_pImage, 0, 0, m_nWidth, m_nHeigh);
      

  4.   

    http://sourceforge.net/project/showfiles.php?group_id=5624&package_id=5683&release_id=648022