39template<
typename PGC = CProgressCtrl>
57 return _super::SendMessage(PBM_SETBARCOLOR, 0, color);
67 return _super::SendMessage(PBM_SETBKCOLOR, 0, color);
87 _super::SetRange32(nLower, nUpper);
99 _super::GetRange(_nLower, _nUpper);
122 return _super::SetPos(nPos);
154 int r = m_currentPos;
155 m_currentPos += nPos;
156 _super::SetTimer(TIMERID_MOVE, 10, NULL);
179 _super::GetRange(m_lower, m_upper);
181 _super::PreSubclassWindow();
193 virtual LRESULT
WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
195 if ( message == WM_TIMER && wParam == TIMERID_MOVE )
200 return _super::WindowProc(message, wParam, lParam);
209 ASSERT( nIDEvent == TIMERID_MOVE );
210 if ( m_currentPos !=
ToInt(m_viewPos + 0.005) )
213 m_viewDelta = m_currentPos - m_viewPos;
214 if ( m_upper != m_currentPos )
227 KillTimer(TIMERID_MOVE);
229 if ( m_viewDelta != 0.0 )
233 if ( m_maxDelta > 0.0 )
235 if ( ::fabs(m_viewDelta) > ::fabs(m_maxDelta) )
237 bool m = (m_viewDelta > 0.0);
238 m_viewDelta = m ? m_maxDelta : -m_maxDelta;
241 m_viewPos += m_viewDelta;
242 if ( m_viewPos < m_lower )
246 if ( m_viewPos > m_upper )
250 _super::SetPos(
ToInt(m_viewPos + 0.005));
255 enum { TIMERID_MOVE = 1 };
COLORREF SetBarColor(COLORREF color=CLR_DEFAULT)
[設定] バーの色指定.
CSmoothProgressCtrlT(void)
コンストラクタ
void SetRange32(int nLower, int nUpper)
[設定] 範囲設定.
int SetPos(int nPos)
[設定] ポジション設定.
int GetPos(void)
[取得] ポジション取得.
void OnMoveTimer(UINT nIDEvent)
[通知] WM_TIMER イベント.
void SetMaxDelta(double d=-1.0)
[設定] 最大移動値設定.
COLORREF SetBkColor(COLORREF color=CLR_DEFAULT)
[設定] 背景色指定.
int SetStep(int nStep)
[設定] ステップ値設定.
int OffsetPos(int nPos)
[設定] ポジション移動.
virtual void PreSubclassWindow(void)
[通知] subclassing/unsubclassing functions.
int StepIt(void)
[設定] ポジション移動.
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
[通知] for processing Windows messages.
void GetRange(int &_nLower, int &_nUpper)
[取得] 範囲設定取得.
void SetRange(short nLower, short nUpper)
[設定] 範囲設定.
int ToInt(LPCSTR lpsz, int iBase=10)
[変換] INT変換(ASCII/SJIS用).
void Swap(T &t1, T &t2)
[変換] スワッパー.
CSmoothProgressCtrlT CSmoothProgressCtrl
スムース進捗コントロールクラス