zoukankan      html  css  js  c++  java
  • MFC使用自定义资源加载PNG

    app.h

    #define RES_PNG _T("PNG")
    #define RES_JPEG _T("JPEG")
    #define RES_JIF _T("JIF")

    extern BOOL LoadImageFromResource(IN CImage* pImage,
        IN UINT nResID, 
        IN LPCTSTR lpTyp);

    app.cpp

    BOOL LoadImageFromResource( IN CImage* pImage,
                                IN UINT nResID, 
                                IN LPCTSTR lpTyp)
    {
        if ( NULL == pImage ) return FALSE;
        pImage->Destroy();
    
        HRSRC hRsrc = ::FindResource(AfxGetResourceHandle(), MAKEINTRESOURCE(nResID), lpTyp);
        if ( NULL == hRsrc ) return FALSE;
    
        HGLOBAL hImgData = ::LoadResource(AfxGetResourceHandle(), hRsrc);
        if ( NULL == hImgData )
        {
            ::FreeResource(hImgData);
            return FALSE;
        }
    
        LPVOID lpVoid = ::LockResource(hImgData);
    
        LPSTREAM pStream = NULL;
        DWORD dwSize = ::SizeofResource(AfxGetResourceHandle(), hRsrc);
        HGLOBAL hNew = ::GlobalAlloc(GHND, dwSize);
        LPBYTE lpByte = (LPBYTE)::GlobalLock(hNew);
        ::memcpy(lpByte, lpVoid, dwSize);
    
        ::GlobalUnlock(hNew);
    
        HRESULT ht = ::CreateStreamOnHGlobal(hNew, TRUE, &pStream);
        if ( ht != S_OK )
        {
            GlobalFree(hNew);
        }
        else
        {
            pImage->Load(pStream);
    
            GlobalFree(hNew);
        }
        ::FreeResource(hImgData);
    
        return TRUE;
    }

    test

    BOOL bRet;
        if ( m_imgBackground.IsNull() )
        {
            bRet = LoadImageFromResource(&m_imgBackground, IDB_PNG1,RES_PNG); 
         ASSERT( bRet );
    }
  • 相关阅读:
    VS2005 DataGridView 和 GirdView 横向大比拼
    表结构信息查询
    在自己的网页中嵌入搜索引擎
    自定义AJAX请求获取地图范围
    oracle远程连接配置
    oracle账户被锁定问题
    JDK环境配置
    PythonWin运行出错解决办法
    HDF库的调试过程
    ajax入门详解
  • 原文地址:https://www.cnblogs.com/qintangtao/p/3289107.html
Copyright © 2011-2022 走看看