68 : _super(), m_interval(1000), m_nowIndex(0), m_mode(0), m_useCache(false), m_isStopInDrag(false), m_doAnimate(false)
83 bool StartAnimation(
bool mode, DWORD interval,
bool useCache =
false,
bool isStopInDrag =
false)
89 m_interval = interval;
90 m_useCache = useCache;
91 m_isStopInDrag = isStopInDrag;
146 bool SetAnimationParameter(
bool mode, DWORD interval,
bool useCache =
false,
bool isStopInDrag =
false)
163 virtual LRESULT
WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
168 TTRACE0(
"WM_ERASEBKGND\n");
174 TTRACE0(
"WM_PRINTCLIENT\n");
176 CDC* pDc = CDC::FromHandle(
reinterpret_cast<HDC
>(wParam));
181 TTRACE0(
"WM_PAINT\n");
186 if ( ::RectVisible(dc, &rc) )
193 TTRACE0(
"WM_ENABLE\n");
194 (wParam != 0) ? m_Start() : m_Stop();
197 TTRACE0(
"WM_SHOWWINDOW\n");
210 TTRACE0(
"WM_TIMER\n");
211 if ( wParam == TIMERID_ANIMA )
213 if ( ! ::IsWindowEnabled(m_hWnd) )
217 else if ( m_IsAnimation() )
228 else if ( m_mode < 0 )
230 if ( m_nowIndex > 0 )
257 return _super::WindowProc(message, wParam, lParam);
267 _super::ModifyStyle(0, SS_NOTIFY);
268 _super::PreSubclassWindow();
273 enum { TIMERID_ANIMA = 10000 };
292 void m_Draw(CDC* pDC)
302 if ( ! m_nowBitmap.
IsNull() )
304 m_nowBitmap.
Draw(*pDC);
308 bool m_IsAnimation(
void)
310 if ( m_isStopInDrag && ::GetCapture() != NULL )
319 if ( m_doAnimate && ::IsWindow(m_hWnd) )
321 SetTimer(TIMERID_ANIMA, m_interval, NULL);
327 if ( ::IsWindow(m_hWnd) )
329 KillTimer(TIMERID_ANIMA);
void FlashCache(void)
[処理] キャッシュ消去
CBitmapHandle FrameAt(INDEX index) const
[取得] フレーム取得
size_t GetLength(void) const
[取得] フレーム数取得
CBitmapHandle FrameAtWithCache(INDEX index)
[取得] フレーム取得
bool SetFirstFrame(CBitmapHandle bmp, const IBitmapWipable &defaultWiper)
[設定] 最初のフレーム画像設定
bool Draw(HDC hdc, int x=0, int y=0) const
[処理] イメージ描画.
bool IsNull(void) const
[確認] NULLチェック
CAnimateStatic(void)
コンストラクタ
bool StartAnimation(bool mode, DWORD interval, bool useCache=false, bool isStopInDrag=false)
[設定] アニメ設定.
void StopAnimation(void)
[設定] アニメ停止
virtual void PreSubclassWindow(void)
[通知] subclassing/unsubclassing functions.
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
[通知] for processing Windows messages.
bool SetFirstFrame(CBitmapHandle bmp, const IBitmapWipable &defaultWiper)
[設定] 最初のフレーム画像設定
bool SetFirstFrame(CBitmapHandle bmp)
[設定] 最初のフレーム画像設定
HRGN m_clientRgn
クライアントリージョン
bool ChangeClientSize(CWnd *pWnd, int cx=-1, int cy=-1)
[設定] クライアントサイズ設定.
int SelectClipRgnOrg(CDC *pDC, HRGN rgn, int mode=RGN_COPY)
[設定] リージョン設定.