代码拉取完成,页面将自动刷新
#include "stdafx.h"
#include "SInterpolatorView.h"
namespace SOUI
{
SInterpolatorView::SInterpolatorView(void):m_nSpeed(5),m_iFrame(0),m_fTime(0.0f)
{
}
SInterpolatorView::~SInterpolatorView(void)
{
}
void SInterpolatorView::OnNextFrame()
{
if(m_interpolator && IsVisible(TRUE))
{
m_iFrame++;
if(m_iFrame%m_nSpeed==0)
{
m_fTime += 0.02f;
if(m_fTime>=1.0f)
{
m_fTime = 0.0f;
}
float fValue = m_interpolator->getInterpolation(m_fTime);
int nValue = m_nMinValue + (int)((m_nMaxValue - m_nMinValue)*fValue);
SetValue(nValue);
m_iFrame = 0;
}
}
}
void SInterpolatorView::SetInterpolator(IInterpolator *pInterpolator)
{
m_interpolator = pInterpolator;
m_iFrame = 0;
}
int SInterpolatorView::OnCreate(void*)
{
int nRet = __super::OnCreate(NULL);
if(nRet == 0)
{
GetContainer()->RegisterTimelineHandler(this);
}
return nRet;
}
void SInterpolatorView::OnDestroy()
{
GetContainer()->RegisterTimelineHandler(this);
__super::OnDestroy();
}
void SInterpolatorView::OnPaint(IRenderTarget * pRT)
{
CAutoRefPtr<IPath> path;
if(GETRENDERFACTORY->CreatePath(&path))
{
CRect rc = GetClientRect();
CAutoRefPtr<IPen> pen,oldPen;
pRT->CreatePen(PS_DASH,RGBA(255,0,0,255),3,&pen);
pRT->SelectObject(pen,(IRenderObj**)&oldPen);
path->moveTo(rc.left,rc.top);
path->quadTo((rc.right+rc.left)/2,rc.bottom + rc.Height(),rc.right,rc.top);
pRT->DrawPath(path);
pRT->SelectObject(oldPen);
}
__super::OnPaint(pRT);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。