用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

75 lines
3.4 KiB

/**
* Copyright (C) 2014-2050 SOUI团队
* All rights reserved.
*
* @file SAnimImg.h
* @brief
* @version v1.0
* @author 水木之
* @date 2014-07-06
*
* Describe 动作图片
*/
#pragma once
#include <core/swnd.h>
namespace SOUI
{
class SAnimImg : public SWindow , protected ITimelineHandler
{
SOUI_CLASS_NAME(SAnimImg, L"anmimg")
public:
SAnimImg(void);
~SAnimImg(void);
protected:
virtual void OnNextFrame();
virtual CSize GetDesiredSize(LPCRECT pRcContainer);
void NextImage();
void OnDestroy();
int OnCreate(void*);
void OnPaint(IRenderTarget *pRT);
void OnMouseHover(WPARAM wParam, CPoint ptPos);
void OnMouseLeave();
SOUI_MSG_MAP_BEGIN()
MSG_WM_CREATE(OnCreate)
MSG_WM_DESTROY(OnDestroy)
MSG_WM_PAINT_EX(OnPaint)
MSG_WM_MOUSEHOVER(OnMouseHover)
MSG_WM_MOUSELEAVE(OnMouseLeave)
SOUI_MSG_MAP_END()
SOUI_ATTRS_BEGIN()
ATTR_INT(L"interval",m_iInterval,FALSE)
ATTR_INT(L"autorun",m_iAutorun,FALSE)
ATTR_SKIN(L"ani_in",m_pAniIn,TRUE)
ATTR_SKIN(L"ani_out",m_pAniOut,TRUE)
SOUI_ATTRS_END()
public:
int m_iInterval;//动画间隔 单位毫秒
int m_iAutorun;//自动运行模式
//-1:默认,不自动运行
//0:连续动画(使用ani_in)
//大于0:间隔动画的暂停时间,单位秒
int m_iAutorun1000;
bool m_bWaitrun;
int m_iHitTest;//记录鼠标位置(大于0表示鼠标还在里面)
enum ANI_STATUS{
STATUS_NOR=0,
STATUS_IN,
STATUS_OUT,
} m_aniStatus;
int m_iFrame;
int m_nElapseTime;
int m_nAutoElapseTime;
ISkinObj *m_pAniIn;
ISkinObj *m_pAniOut;
};
}//namespace SOUI