Se non si ha realmente bisogno di un CBitmap, ma solo una maniglia questo potrebbe essere utile per te
Oppure se è possibile ottenere una CBitMap da HBITMAP questa funzione restituisce è anche buona.
Lo uso su un'applicazione commerciale e funziona.
// Based on afxbutton.cpp's static function ButtonLoadBitmap
HBITMAP __stdcall ButtonLoadBitmap(UINT uiBmpResId)
{
if (uiBmpResId == 0)
{
return NULL;
}
LPCTSTR lpszResourceName = MAKEINTRESOURCE(uiBmpResId);
ENSURE(lpszResourceName != NULL);
HBITMAP hbmp = NULL;
// Try to load PNG image first:
CPngImage pngImage;
if (pngImage.Load(lpszResourceName))
{
hbmp = (HBITMAP) pngImage.Detach();
}
else
{
HINSTANCE hinstRes = AfxFindResourceHandle(lpszResourceName, RT_BITMAP);
if (hinstRes == NULL)
{
return NULL;
}
UINT uiLoadImageFlags = LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS;
hbmp = (HBITMAP) ::LoadImage(hinstRes, lpszResourceName, IMAGE_BITMAP, 0, 0, uiLoadImageFlags);
}
return hbmp;
}
L'errore è in LoadFromResource o in Attach? – dwo