GDI+ 添加图片资源函数封装

来源:互联网 发布:c语言三个整数排序 编辑:程序博客网 时间:2024/06/09 18:24

 BOOL LoadImageFromResourceID( UINT nResID, Gdiplus::Image* &pImg );

 Gdiplus::Image *m_pImg[19];

BOOL CTranceDlg::LoadImageFromResourceID( UINT nResID, Gdiplus::Image* &pImg )
{
 HRSRC hRes = FindResourceW( NULL, MAKEINTRESOURCEW( nResID ), L"PNG" );

 if ( NULL == hRes )
 {
  return FALSE;
 }

 DWORD dwSize = SizeofResource( NULL, hRes );

 HGLOBAL hGlobal = LoadResource( NULL, hRes );
 HGLOBAL hMem = GlobalAlloc( GMEM_FIXED | GMEM_MOVEABLE, dwSize );

 if ( NULL == hMem )
 {
  return FALSE;
 }

 BYTE* lpRes = ( BYTE* )LockResource( hGlobal );
 BYTE* lpMem = ( BYTE* )GlobalLock( hMem );

 memcpy( lpMem, lpRes, dwSize );

 IStream* pStream = NULL;

 CreateStreamOnHGlobal( lpMem, TRUE, &pStream );

 GlobalUnlock( hMem );

 pImg = Gdiplus::Image::FromStream( pStream );

 pStream->Release();

 return TRUE;
}

 // TODO: 在此添加额外的初始化代码
    int iResult = 0;
    //背景
 iResult += LoadImageFromResourceID( IDB_PNG_MAIN, m_pImg[0] );
    //添加日志
 iResult += LoadImageFromResourceID( IDB_PNG_ADDLOG, m_pImg[1] );
 iResult += LoadImageFromResourceID( IDB_PNG_ADDLOG_H, m_pImg[2] );
    //显示轨迹
 iResult += LoadImageFromResourceID( IDB_PNG_SHOWTRACK, m_pImg[3] );
 iResult += LoadImageFromResourceID( IDB_PNG_SHOWTRACK_H, m_pImg[4] );

原创粉丝点击