|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>ʹ<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// <20><><EFBFBD>߳<EFBFBD><DFB3><EFBFBD>ʹ<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д:
|
|
|
|
|
|
//<2F><><EFBFBD>ڣ<EFBFBD>2011-08-30
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "ProgressBase.h"
|
|
|
|
|
|
#include "ProgressThreadCtrl.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace NProgress
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_CLASS_EXPORT CProgressThreadBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CProgressThreadBase(CWnd* pParentWnd = NULL);
|
|
|
|
|
|
virtual ~CProgressThreadBase(void);
|
|
|
|
|
|
|
|
|
|
|
|
///< <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣߳<DFB3><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>falseʱ<65><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
|
virtual bool IsCanThread() { return true; }
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
|
bool DoModal();
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
|
bool StartThread();
|
|
|
|
|
|
//<2F><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ı<EFBFBD><C4B1>⼰<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetProgressInfo(LPCTSTR lpszDlgTitle=NULL, bool bAllowCancel=true);
|
|
|
|
|
|
//<2F><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ʾ<EFBFBD><CABE>Ϣ
|
|
|
|
|
|
bool SetProgressInfo(__int64 cur, __int64 total);
|
|
|
|
|
|
|
|
|
|
|
|
void SetProgressText(LPCTSTR lpszText);
|
|
|
|
|
|
void SetProgressPos(int nPos);
|
|
|
|
|
|
void SetProgressRange(int nLower, int nUpper);
|
|
|
|
|
|
|
|
|
|
|
|
bool IsCanceled(void);
|
|
|
|
|
|
bool IsSucceed(void);
|
|
|
|
|
|
void EnableSucceed(bool bEnable);
|
|
|
|
|
|
|
|
|
|
|
|
CProgressBase* GetProgress() { return m_pProgress; }
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><EFBFBD><F3B6A8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><F3A3ACB2><EFBFBD><EFBFBD><EFBFBD>m_bShowDlg״̬Ϊfalseʱ<65><CAB1><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<D0B0><F3B6A8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
|
|
|
|
|
void AttachProgressCtrl(CProgressCtrl* pProgressCtrl) { m_threadCtrl.AttachInput(pProgressCtrl); }
|
|
|
|
|
|
|
|
|
|
|
|
enum EProgressMode
|
|
|
|
|
|
{
|
|
|
|
|
|
showNothing = 0, //<2F><><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
showProgressCtrl= 1, //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊָ<CEAA><D6B8><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>AttachProgressCtrl<72><6C><EFBFBD><EFBFBD>
|
|
|
|
|
|
showProgressDlg = 2, //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
void SetProgressShowMode(EProgressMode pm) { m_showMode = pm; }
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void SetProgressWnd(CProgressBase* pProgressWnd) { m_pProgress = pProgressWnd; }
|
|
|
|
|
|
static DWORD WINAPI _ThreadFunc(LPVOID lpVoid);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA>д<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>
|
|
|
|
|
|
virtual bool DoThreadWork() = 0; //ִ<><D6B4><EFBFBD>̴߳<DFB3><CCB4><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
CProgressBase* m_pProgress;
|
|
|
|
|
|
CWnd* m_pParentWnd;
|
|
|
|
|
|
LPCTSTR m_lpszDlgTitle;
|
|
|
|
|
|
bool m_bAllowCancel;
|
|
|
|
|
|
CProgressThreadCtrl m_threadCtrl;
|
|
|
|
|
|
EProgressMode m_showMode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾģʽ
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|