【问题标题】:MFC VC++ : Picture Control fails to load PNG imagesMFC VC++:Picture Control 无法加载 PNG 图像
【发布时间】:2013-05-30 10:07:40
【问题描述】:

我使用以下代码将 PNG 图像加载到图片控件中。

....
LPSTREAM pStrmDefImg = TurnStream(MAKEINTRESOURCE(resourceID),_T("PNG"));
if(pStrmDefImg !=  NULL) {
    CImage img;
    img.Load(pStrmDefImg);    // Load from stream
    pictureCtrl.SetBitmap(img);
    pStrmDefImg->Release();
}
.....

LPSTREAM TurnStream(LPCTSTR Resource, LPCTSTR Type)
{
    char* pData = 0;
    DWORD dwSize = 0;
    int nRes = GetResource(Resource,Type,&pData,&dwSize);              
    LPSTREAM pStream;
    HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwSize+1);
    void *pImageData = GlobalLock(hGlobal);
    memcpy(pImageData, pData, dwSize);
    HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pStream);
    return pStream;
}

您在此代码中发现任何问题吗?没有报错,但是图片控件不显示加载的图片。

【问题讨论】:

  • 此代码有效。我必须更改图片控件属性中的type。我将它设置为Bitmap,它会显示 png 图像。
  • 嘿,你能说说GetResource(Resource,Type,&pData,&dwSize);函数吗?

标签: visual-c++ mfc png


【解决方案1】:

PictureCtrl 属性窗口中将type 属性设置为Bitmap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 2020-11-04
    • 2017-10-30
    • 2015-04-05
    • 1970-01-01
    • 2017-02-23
    • 2019-02-06
    相关资源
    最近更新 更多