Поделиться через


Функция BufferedPaintRenderAnimation (uxtheme.h)

Рисует следующий кадр буферизованной анимации краски.

Синтаксис

BOOL BufferedPaintRenderAnimation(
  HWND hwnd,
  HDC  hdcTarget
);

Параметры

hwnd

Тип: HWND

Обработайте окно, в котором воспроизводится анимация.

hdcTarget

Тип: HDC

Дескриптор целевого контроллера домена, на котором анимирован буфер.

Возвращаемое значение

Тип: BOOL

Возвращает значение TRUE , если кадр был окрашен или false в противном случае.

Замечания

Если эта функция возвращает значение TRUE, приложение не должно выполнять дальнейшее рисование. Если эта функция возвращает значение FALSE, приложение должно обычно рисовать.

Приложение вызывает эту функцию в обработчике WM_PAINT . После того как BufferedPaintRenderAnimation красит кадр анимации, приложение обычно продолжается без выполнения обычных операций рисования. При необходимости приложение может выбрать отображение дополнительного пользовательского интерфейса (пользовательского интерфейса) в верхней части анимации. В следующем примере кода, который будет включен в состав более крупного текста кода, показано, как использовать функции рисования анимации.

    if (!_fBufferedPaintInit)
    {
        BufferedPaintInit();
        _fBufferedPaintInit = TRUE;
    }

    // Determine whether the paint message was generated by a softfade animation.
    if (!BufferedPaintRenderAnimation(hWnd, hdc))
    {
        // Initialize buffered paint parameters.
        BP_ANIMATIONPARAMS animParams = {sizeof(BP_ANIMATIONPARAMS)};
        animParams.style = BPAS_LINEAR; 
        animParams.dwDuration = 0;
        GetThemeTransitionDuration(hTheme, iPartId, iStateIdFrom, 
                iStateIdTo, TMT_TRANSITIONDURATIONS, &animParams.dwDuration);

        HDC hdcFrom, hdcTo;
        HANIMATIONBUFFER hbpAnimation = BeginBufferedAnimation(hWnd, hdc, &rc, 
                BPBF_COMPATIBLEBITMAP, NULL, &animParams, &hdcFrom, &hdcTo);
        if (hbpAnimation)
        {
            if (hdcFrom)
            {
                PaintImpl(hdcFrom, iPartId, iStateIdFrom /*, ...*/);
            }
            if (hdcTo)
            {
                PaintImpl(hdcTo, iPartId, iStateIdTo/*, ...*/);
            }

            EndBufferedAnimation(hbpAnimation, TRUE);
        }
        else
        {
            // Default to unbuffered paint
            PaintImpl(hdc, iPartId, iStateIdTo/*, ...*/);
       
        }
    }
    // Else do not paint because the BufferedPaintRenderAnimation function 
    // already did.
}

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
Header uxtheme.h
Library Uxtheme.lib
DLL UxTheme.dll