www.pudn.com > StyleToolkit_demo_src.zip > StyleProgress.h


// 
// StyleProgress.h : Version 1.0 - see article at CodeProject.com 
// 
// Author:  Darren Sessions 
//           
// 
// Description: 
//     StyleProgress is a CProgressCtrl derived control that uses the Style class 
//	   and GDI+ to support different styles 
// 
// History 
//     Version 1.0 - 2008 June 20 
//     - Initial public release 
// 
// License: 
//     This software is released under the Code Project Open License (CPOL), 
//     which may be found here:  http://www.codeproject.com/info/eula.aspx 
//     You are free to use this software in any way you like, except that you  
//     may not sell this source code. 
// 
//     This software is provided "as is" with no expressed or implied warranty. 
//     I accept no liability for any damage or loss of business that this  
//     software may cause. 
// 
/////////////////////////////////////////////////////////////////////////////// 
 
#pragma once 
 
#include "style.h" 
 
class StyleProgress : public CProgressCtrl 
{ 
 
public: 
	StyleProgress(void); 
	~StyleProgress(void); 
 
	// for custom bar 
	void AddStack(Stack stack); 
	void AddStepStack(Stack stack); 
	void SetStepLayer(int layerIdx); 
 
	// for default bar 
	void SetBackColor(COLORREF color, int Alpha = 255); 
	void SetForeColor(COLORREF color, int Alpha = 255); 
 
	COLORREF	m_ForeColor; 
	COLORREF	m_BackColor; 
	int			m_ForeAlpha; 
	int			m_BackAlpha; 
 
	int		StepIt(); 
	int		SetPos(int pos); 
	int		SetStep(int step); 
	void	SetRange(int lower, int upper); 
 
	void	CreateDefaultStack(); 
 
	Style		m_Style; 
protected: 
	DECLARE_MESSAGE_MAP() 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg void OnPaint(); 
	afx_msg void OnNcPaint(); 
 
	void	UpdateStack(); 
 
private: 
 
	int			m_Pos; 
	int			m_Step; 
	int			m_Upper; 
	int			m_Lower; 
 
	CRect		m_ProgRect; 
	BOOL		m_bCreated; 
 
	int			m_StepStackIdx; 
	int			m_StepLayerIdx; 
	int			m_StepLayerWidth; 
};