Gdiplus :: Bitmap :: FromHICON失败

时间:2017-08-23 19:06:40

标签: c++ windows winapi bitmap gdi+

我试图通过调用HICONGdiplus::Bitmap转换为Gdiplus::Bitmap::FromHICON,如下所示。

我通过调用LoadIcon创建了一个Windows图标,并通过在屏幕上绘图验证了该图标是否有效。

令人惊讶的是,我仍然有一个NULL指针。我重温了win32 documents,但找不到我想要的东西。

HICON hIcon = LoadIcon(NULL, IDI_WINLOGO);
assert( hIcon != nullptr ); // passed

Gdiplus::Bitmap *pIcon = Gdiplus::Bitmap::FromHICON(hIcon);

assert( pIcon != nullptr ); // failed

有没有人有想法?感谢:)

1 个答案:

答案 0 :(得分:2)

您需要先使用GdiplusStartup函数初始化GDI +引擎:

HICON hIcon = LoadIcon(NULL, IDI_WINLOGO);
assert(hIcon != nullptr); // passed
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Gdiplus::Bitmap *pIcon = Gdiplus::Bitmap::FromHICON(hIcon);
assert(pIcon != nullptr); // now OK
GdiplusShutdown(gdiplusToken);