GDI+ и AnimateWindow

Я рисую изображение в моей клиентской области, используя GDI+, который прекрасно работает, пока я не использую AnimateWindow для отображения диалога. При этом сценарии и чертежи, выполненные GDI+, не показаны. Это можно обойти? Я использую Win32 C++. Мой код до сих пор:

BOOL CALLBACK MyClass::DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;

    switch(msg)
    {
    case TRACK_CHANGED:
        if(IsWindowVisible(hWnd)) {
            RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE);
        }
        else {
            //ShowWindow(hWnd, SW_SHOW);
            AnimateWindow(hWnd, 200, AW_ACTIVATE | AW_BLEND);
        }
        break;

    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        OnPaint(hdc);
        EndPaint(hWnd, &ps);
        return FALSE;
        break;

    case WM_CLOSE:
        //ShowWindow(hWnd, SW_HIDE);
        AnimateWindow(hWnd, 200, AW_HIDE | AW_BLEND);
        break;

    case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDC_CLOSE:
            //ShowWindow(hWnd, SW_HIDE);
            AnimateWindow(hWnd, 200, AW_HIDE | AW_BLEND);
            break;
        }
        break;

    default:
        return FALSE;
    }
    return TRUE;
}

void MyClass::OnPaint(HDC hdc)
{
    Graphics graphics(hdc);
    Image image(L"testImage.png");
    graphics.DrawImage(&image, 0, 0);
}

0 ответов

Другие вопросы по тегам