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 に答える