2013-05-30 46 views
1

我使用以下代碼將PNG圖像加載到Picture Control中。MFC VC++:Picture Control無法加載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; 
} 

您是否看到此代碼中的任何問題?沒有錯誤拋出,但圖片控件不顯示加載的圖像。

+0

此代碼工作..我不得不改變圖片控制屬性中的'類型'。我將它設置爲「位圖」,並顯示png圖像。 – user2432627

+0

嘿,你能告訴我關於'GetResource(Resource,Type,&pData,&dwSize);'函數嗎? – Himanshu

回答

0

PictureCtrl屬性窗口中將type屬性設置爲Bitmap