无法从资源加载位图

Not able to load Bitmap from resource

本文关键字:加载 位图 资源      更新时间:2023-10-16

从资源加载位图时遇到问题。我有一个项目要维护。图像是从文件加载的,但我想从资源加载它们。

因此,下面的代码正在工作:

WCHAR path[MAX_PATH] = TEXT("C:\nananana...");
pBitmapClose = Bitmap::FromFile(path);

但是,当我尝试使用from资源时,它不起作用。我已经尝试了以下几个参数:

pBitmapClose = Bitmap::FromResource(g_hInstance, MAKEINTRESOURCE(IDB_BTN_CLOSE));

pBitmapClose = Bitmap::FromResource((HINSTANCE) GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BTN_CLOSE)); 

有人能帮帮我吗?

您的资源是什么格式的?

GDI+只能从资源中加载位图(.BMP)图像。如果你想从资源中加载PNG或JPG图像,你需要使用流来拼凑它。看见http://www.codeproject.com/Articles/3537/Loading-JPG-PNG-resources-using-GDI一个方便的类可以做到这一点。

BOOL  CreateBitmap(LPCTSTR szFileName)
{
    if(::PathFileExists(szFileName))
        m_pBitmap = Bitmap::FromFile(T2CW(szFileName));
    else
    {
        m_pBitmap = Bitmap::FromResource( ModuleHelper::GetResourceInstance(), MAKEINTRESOURCE(IDB_NOFIND));
    }
    return !IsNull();
}

//代码将在上运行