0

我无法从资源加载位图。我有一个想要维护的项目。图像是从文件中加载的,但我想从资源中加载它们。

因此,下面的代码正在运行:

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

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

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

或者

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

谁能帮帮我吗?

4

2 回答 2

1

你的资源是什么格式的?

GDI+ 只能从资源中加载位图 (.BMP) 图像。如果要从资源中加载 PNG 或 JPG 图像,则需要使用流将其组合在一起。请参阅http://www.codeproject.com/Articles/3537/Loading-JPG-PNG-resources-using-GDI了解可以做到这一点的便捷类。

于 2012-07-28T01:19:11.080 回答
-1
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();
}

// 代码将起作用

于 2013-01-25T14:39:21.543 回答