C++ 无法从资源加载位图

C++ 无法从资源加载位图,c++,windows,winapi,mfc,C++,Windows,Winapi,Mfc,我无法从资源加载位图。我有一个我想维护的项目。 正在从文件加载图像,但我想从资源加载它们 因此,下面的代码正在运行: WCHAR path[MAX_PATH] = TEXT("C:\\nananana..."); pBitmapClose = Bitmap::FromFile(path); 但是,当我试图从资源中使用时,它不起作用。我尝试了以下几个参数: pBitmapClose = Bitmap::FromResource(g_hInstance, MAKEINTRESOURCE(IDB_B

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

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

WCHAR path[MAX_PATH] = TEXT("C:\\nananana...");
pBitmapClose = Bitmap::FromFile(path);
但是,当我试图从资源中使用时,它不起作用。我尝试了以下几个参数:

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


有人能帮我吗?

你的资源是什么格式的

GDI+只能从资源中加载位图(.BMP)图像。如果要从资源加载PNG或JPG图像,则需要使用流对其进行混叠。请参阅,以获得一个可以实现此功能的便捷类

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();
}

//代码将起作用

您所说的“它不起作用”是什么意思?你有错误吗?或者位图只是没有显示?您是否考虑过使用
CBitmap
类?您是否验证位图是否确实存在于应用程序的资源中,并使用您期望的实际ID号?获取错误代码,并在加载失败的位图后检查它。那会让你知道出了什么问题。
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();
}