ProgressControl::ProgressControl(HWND hwndProgress)
{
m_hwndProgress = hwndProgress;
+
+ m_dw64MaxValue = 0;
+ m_dw64CurrentValue = 0;
}
ProgressControl::~ProgressControl()
bool
ProgressControl::show()
{
- DWORD curPos = (DWORD) ((m_dw64CurrentValue * MAX_RANGE) / m_dw64MaxValue);
+ DWORD curPos;
+ if (m_dw64MaxValue != 0) {
+ curPos = (DWORD) ((m_dw64CurrentValue * MAX_RANGE) / m_dw64MaxValue);
+ } else {
+ curPos = 0;
+ }
if (!SendMessage(m_hwndProgress, PBM_SETPOS, (WPARAM) curPos, (LPARAM) 0))
return false;
int
ProgressControl::getCurrentPercent()
{
+ if (m_dw64MaxValue == 0) return 0;
+
return ((int) ((m_dw64CurrentValue * 100) / m_dw64MaxValue));
}
\ No newline at end of file
FTProgress::~FTProgress()
{
-
+ destroyProgressBarObjects();
}
bool
void
FTProgress::increase(DWORD value)
{
+ if (!m_bInitialized) return;
+
+ m_pSingleProgress->increase(value);
+ m_pGeneralProgress->increase(value);
+ setProgressText();
}
void
-FTProgress::clear()
+FTProgress::clearSingle()
{
+ if (!m_bInitialized) return;
+
+ m_pSingleProgress->clear();
+ setProgressText();
+}
+
+void
+FTProgress::clearAll()
+{
+ if (!m_bInitialized) return;
+
+ m_pSingleProgress->clear();
+ m_pGeneralProgress->clear();
+
+ setProgressText();
}
bool
bool
FTProgress::destroyProgressBarObjects()
{
+ clearAll();
+
if (m_pSingleProgress != NULL) {
delete m_pSingleProgress;
}
bool initialize(DWORD64 totalMaxValue, DWORD maxValue);
void increase(DWORD value);
- void clear();
+ void clearSingle();
+ void clearAll();
private:
ProgressControl *m_pSingleProgress;