GDI+ Graphics::DrawImage doesn't work

Viewed 3513

I am trying to draw an image using GDI+. When I do it inside WM_PAINT it works:

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;

}

But when I do it on a button click or inside WM_CREATE it doesn't draw the image:

HDC hdc2 = GetDC(hWnd);
Gdiplus::Graphics graphics(hdc2);
Gdiplus::Image gdiImage(L"unt.png");
graphics.DrawImage(&gdiImage, 40, 40);

Even if I use BeginPaint() and EndPaint() it still fails. So, is there any way to draw the image outside of WM_PAINT?

2 Answers
Related