GDI +を使用して画像を描画しようとしています。私はWM_PAINT
内でそれを行うとき、それは動作します:GDI + Graphics :: DrawImageが機能しません。
case WM_PAINT: {
hdc = BeginPaint(hWnd, &ps);
Gdiplus::Graphics graphics(hdc);
Gdiplus::Image gdiImage(L"unt.png");
graphics.DrawImage(&gdiImage, 40, 40);
EndPaint(hWnd, &ps);
break;
}
しかし、私はボタンのクリックやWM_CREATE
の内側にそれを行う際には、画像を描画していません:
HDC hdc2 = GetDC(hWnd);
Gdiplus::Graphics graphics(hdc2);
Gdiplus::Image gdiImage(L"unt.png");
graphics.DrawImage(&gdiImage, 40, 40);
私はBeginPaint()
とEndPaint()
を使用する場合でもそれでも失敗します。では、WM_PAINT
の外に画像を描画する方法はありますか?
WM_CREATEで実行した場合、早すぎるとウィンドウが表示されません。あなたがボタンクリックハンドラでそれを行うと、それはおそらく動作しますが、それはミリ秒後にもう一度塗り直されるので、それを見ることはできません。さて、WM_PAINTが存在する理由は、それが確実にあなたが*ペイントすべきであることを伝えます。 –