112 lines
3.4 KiB
C++
112 lines
3.4 KiB
C++
// ProgressWnd.h : header file
|
|
//
|
|
// Written by Chris Maunder (chrismaunder@codeguru.com)
|
|
// Copyright 1998.
|
|
//
|
|
// CProgressWnd is a drop-in popup progress window for use in
|
|
// programs that a time consuming. Check out the accompanying HTML
|
|
// doc file for details.
|
|
//
|
|
// This code may be used in compiled form in any way you desire. This
|
|
// file may be redistributed by any means PROVIDING it is not sold for
|
|
// profit without the authors written consent, and providing that this
|
|
// notice and the authors name is included. If the source code in
|
|
// this file is used in any commercial application then an email to
|
|
// me would be nice.
|
|
//
|
|
// This file is provided "as is" with no expressed or implied warranty.
|
|
// The author accepts no liability if it causes any damage to your
|
|
// computer, causes your pet cat to fall ill, increases baldness or
|
|
// makes you car start emitting strange noises when you start it up.
|
|
//
|
|
// Expect bugs.
|
|
//
|
|
// Please use and enjoy. Please let me know of any bugs/mods/improvements
|
|
// that you have found/implemented and I will fix/incorporate them into this
|
|
// file.
|
|
|
|
|
|
#ifndef _INCLUDE_PROGRESSWND_H
|
|
#define _INCLUDE_PROGRESSWND_H
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CProgressWnd window
|
|
|
|
class CProgressWnd : public CWnd
|
|
{
|
|
// Construction/Destruction
|
|
public:
|
|
CProgressWnd();
|
|
CProgressWnd(CWnd* pParent, LPCTSTR pszTitle, BOOL bSmooth = FALSE);
|
|
virtual ~CProgressWnd();
|
|
|
|
BOOL Create(CWnd* pParent, LPCTSTR pszTitle, BOOL bSmooth = FALSE);
|
|
BOOL GoModal(LPCTSTR pszTitle =_T("Progress"), BOOL bSmooth = FALSE);
|
|
|
|
protected:
|
|
void CommonConstruct();
|
|
|
|
// Operations
|
|
public:
|
|
void SetRange(int nLower, int nUpper, int nStep = 1);
|
|
// Set range and step size
|
|
int OffsetPos(int nPos); // Same as CProgressCtrl
|
|
int StepIt(); // "
|
|
int SetStep(int nStep); // "
|
|
int SetPos(int nPos); // "
|
|
|
|
void SetText(LPCTSTR fmt, ...); // Set text in text area
|
|
|
|
void Clear(); // Clear text, reset bar
|
|
void Hide(); // Hide window
|
|
void Show(); // Show window
|
|
|
|
BOOL Cancelled() { return m_bCancelled; } // Was "Cancel" hit?
|
|
|
|
void SetWindowSize(int nNumTextLines, int nWindowWidth = 390);
|
|
|
|
void PeekAndPump(BOOL bCancelOnESCkey = TRUE); // Message pumping for modal operation
|
|
|
|
// Implementation
|
|
protected:
|
|
void GetPreviousSettings();
|
|
void SaveCurrentSettings();
|
|
|
|
protected:
|
|
BOOL m_bCancelled;
|
|
BOOL m_bModal;
|
|
BOOL m_bPersistantPosition;
|
|
int m_nPrevPos, m_nPrevPercent;
|
|
int m_nStep;
|
|
int m_nMaxValue, m_nMinValue;
|
|
int m_nNumTextLines;
|
|
|
|
CStatic m_Text;
|
|
CProgressCtrl m_wndProgress;
|
|
CButton m_CancelButton;
|
|
CString m_strTitle,
|
|
m_strCancelLabel;
|
|
CFont m_font;
|
|
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CProgressWnd)
|
|
public:
|
|
virtual BOOL DestroyWindow();
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Generated message map functions
|
|
protected:
|
|
//{{AFX_MSG(CProgressWnd)
|
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|
//}}AFX_MSG
|
|
afx_msg void OnCancel();
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
#endif
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|