/********************************************************************
|
created: 2012/12/27
|
created: 27:12:2012 14:55
|
filename: DuiSkinGif.h
|
file base: DuiSkinGif
|
file ext: h
|
author: huangjianxiong
|
|
purpose: ×Ô¶¨Ò寤·ô¶ÔÏó
|
*********************************************************************/
|
#pragma once
|
#include <interface/SSkinobj-i.h>
|
#include <unknown/obj-ref-impl.hpp>
|
|
//#include "SAniImgFrame.h"
|
#include "../controls.extend/gif/SAniImgFrame.h"
|
|
namespace Gdiplus
|
{
|
class Bitmap;
|
}
|
|
namespace SOUI
|
{
|
|
/**
|
* @class SSkinGif
|
* @brief GIFͼƬ¼ÓÔØ¼°ÏÔʾ¶ÔÏó
|
*
|
* Describe
|
*/
|
class SSkinMutiFrameImg : public SSkinAni
|
{
|
SOUI_CLASS_NAME(SSkinMutiFrameImg, L"imgMutiFrame")
|
public:
|
SSkinMutiFrameImg()
|
{
|
|
}
|
|
//³õʼ»¯GDI+»·¾³£¬ÓÉÓÚÕâÀïÐèҪʹÓÃGDI+À´½âÂëGIFÎļþ¸ñʽ
|
static BOOL Gdiplus_Startup();
|
//Í˳öGDI+»·¾³
|
static void Gdiplus_Shutdown();
|
|
/**
|
* LoadFromFile
|
* @brief ´ÓÎļþ¼ÓÔØGIF
|
* @param LPCTSTR pszFileName -- ÎļþÃû
|
* @return int -- GIFÖ¡Êý£¬0-ʧ°Ü
|
* Describe
|
*/
|
int LoadFromFile(LPCTSTR pszFileName);
|
|
/**
|
* LoadFromMemory
|
* @brief ´ÓÄÚ´æ¼ÓÔØGIF
|
* @param LPVOID pBits -- ÄÚ´æµØÖ·
|
* @param size_t szData -- ÄÚ´æÊý¾Ý³¤¶È
|
* @return int -- GIFÖ¡Êý£¬0-ʧ°Ü
|
* Describe
|
*/
|
int LoadFromMemory(LPVOID pBits,size_t szData);
|
|
SOUI_ATTRS_BEGIN()
|
ATTR_CUSTOM(L"src",OnAttrSrc) //XMLÎļþÖÐÖ¸¶¨µÄͼƬ×ÊÔ´Ãû,(type:name)
|
SOUI_ATTRS_END()
|
protected:
|
LRESULT OnAttrSrc(const SStringW &strValue,BOOL bLoading);
|
int LoadFromGdipImage(Gdiplus::Bitmap * pImg);
|
};
|
}//end of name space SOUI
|