1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #ifndef GifAnimUI_h__
- #define GifAnimUI_h__
- #pragma once
- namespace DuiLib
- {
- class UILIB_API CGifAnimUI : public CControlUI
- {
- enum
- {
- EVENT_TIEM_ID = 100,
- };
- DECLARE_DUICONTROL(CGifAnimUI)
- public:
- CGifAnimUI(void);
- ~CGifAnimUI(void);
- LPCTSTR GetClass() const;
- LPVOID GetInterface(LPCTSTR pstrName);
- void DoInit();
- bool DoPaint(HDC hDC, const RECT& rcPaint, CControlUI* pStopControl);
- void DoEvent(TEventUI& event);
- void SetVisible(bool bVisible = true );
- void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
- void SetBkImage(LPCTSTR pStrImage);
- LPCTSTR GetBkImage();
- void SetAutoPlay(bool bIsAuto = true );
- bool IsAutoPlay() const;
- void SetAutoSize(bool bIsAuto = true );
- bool IsAutoSize() const;
- void PlayGif();
- void PauseGif();
- void StopGif();
- private:
- void InitGifImage();
- void DeleteGif();
- void OnTimer( UINT_PTR idEvent );
- void DrawFrame( HDC hDC ); // 绘制GIF每帧
- private:
- Gdiplus::Image *m_pGifImage;
- UINT m_nFrameCount; // gif图片总帧数
- UINT m_nFramePosition; // 当前放到第几帧
- Gdiplus::PropertyItem* m_pPropertyItem; // 帧与帧之间间隔时间
- CDuiString m_sBkImage;
- bool m_bIsAutoPlay; // 是否自动播放gif
- bool m_bIsAutoSize; // 是否自动根据图片设置大小
- bool m_bIsPlaying;
- };
- }
- #endif // GifAnimUI_h__
|