// 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 /////////////////////////////////////////////////////////////////////////////