2017-08-23 6 views
0

HICONGdiplus::Bitmapに変換しようとしていますが、これはGdiplus::Bitmap::FromHICONと表示されます。Gdiplus :: Bitmap :: FromHICONに失敗しました

LoadIconを呼び出してウィンドウアイコンを作成し、そのアイコンが画面上に描画されていることを確認しました。

驚いたことに、私はまだNULLポインタを持っています。私はwin32 documentsを再訪しましたが、私が紛失しているものは見つかりませんでした。

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

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

assert(pIcon != nullptr); // failed 

誰もが考えていますか?感謝:)

+0

あなたのアイデアをしたい場合 - '画像を呼び出す:: GetLastStatusを' - これはあなたが素晴らしい – RbMm

答えて

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); 
+0

をほのめかす与えることがあり、私はdidnのスタートアップとシャットダウンの方法があることを認識していません。 – hackjutsu

+0

ちょうど興味深いことに、 'HICON'の高さは、' hbmColor'が存在するかどうかに応じて(カラフルまたはモノクロ)異なる動作をします。 'Gdiplus :: Bitmap :: FromHICON'はこれを正しく扱いますか? – hackjutsu

+0

@hackjutsuおそらく別の質問として投稿するべきです。 – Ron

関連する問題