www.pudn.com > mu_explorer.rar > CJReBar.h


// CJReBar.h : header file 
// Copyright © 1998-1999 CodeJock.com, All Rights Reserved. 
// See ReadMe.txt for TERMS OF USE. 
// 
// Copied from MFC, Visual C++ 6, to extend functionality to Visual C++ 5  
// users, with some ideas taken from Luis Barreira's article 'Classes for new IE4 controls' 
// http://www.codeguru.com/controls/ie4_controls_classes.shtml 
// 
///////////////////////////////////////////////////////////////////////////// 
/**************************************************************************** 
 * 
 * $Date: 8/31/99 1:11a $ 
 * $Revision: 8 $ 
 * $Archive: /CodeJockey/Include/CJReBar.h $ 
 * 
 * $History: CJReBar.h $ 
 *  
 * *****************  Version 8  ***************** 
 * User: Kirk Stowell Date: 8/31/99    Time: 1:11a 
 * Updated in $/CodeJockey/Include 
 * Updated copyright and contact information. 
 *  
 * *****************  Version 7  ***************** 
 * User: Kirk Stowell Date: 7/31/99    Time: 4:27p 
 * Updated in $/CodeJockey/Include 
 *  
 * *****************  Version 5  ***************** 
 * User: Kirk Stowell Date: 7/25/99    Time: 10:00p 
 * Updated in $/CodeJockey/Include 
 *  
 * *****************  Version 4  ***************** 
 * User: Kirk Stowell Date: 7/25/99    Time: 12:42a 
 * Updated in $/CodeJockey/Include 
 *  
 * *****************  Version 3  ***************** 
 * User: Kirk Stowell Date: 6/23/99    Time: 12:33a 
 * Updated in $/CodeJockey/Include 
 *  
 * *****************  Version 2  ***************** 
 * User: Kirk Stowell Date: 7/18/99    Time: 10:13p 
 * Updated in $/CodeJockey/Include 
 * Cleaned up inline functions, and import/export macro so that class will 
 * be imported when linked to, and exported at compile time. 
 *  
 * *****************  Version 1  ***************** 
 * User: Kirk Stowell Date: 7/14/99    Time: 10:29p 
 * Created in $/CodeJockey/Include 
 * Copied from MFC v6 and techno preview for v5. Added to extend 
 * functionality to Visual C++ 5.0 users. 
 * 
 ***************************************************************************/ 
///////////////////////////////////////////////////////////////////////////// 
 
#ifndef __CJREBAR_H__ 
#define __CJREBAR_H__ 
 
#include "CJToolBarBase.h" 
 
#ifdef _VC_VERSION_5 
#define AFX_IDW_REBAR       0xE804  // COMCTL32 "rebar" Bar 
#define AFX_IDW_DIALOGBAR   0xE805  // CDialogBar 
#endif // _VC_VERSION_5 
 
///////////////////////////////////////////////////////////////////////////// 
 
class CCJReBarCtrl; 
 
// A CCJReBar object is a control bar that provides layout, persistence, and state  
// information for rebar controls. 
class  CCJReBar : public CCJToolBarBase 
{ 
	DECLARE_DYNAMIC(CCJReBar) 
 
// Construction 
public: 
	CCJReBar(); 
	BOOL Create(CWnd* pParentWnd, DWORD dwCtrlStyle = RBS_BANDBORDERS, 
		DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_TOP, 
		UINT nID = AFX_IDW_REBAR); 
 
// Attributes 
public: 
	// for direct access to the underlying common control 
	CCJReBarCtrl& GetReBarCtrl() const; 
 
// Operations 
public: 
	BOOL AddBar(CWnd* pBar, LPCTSTR pszText = NULL, CBitmap* pbmp = NULL, 
		DWORD dwStyle = RBBS_GRIPPERALWAYS | RBBS_FIXEDBMP); 
	BOOL AddBar(CWnd* pBar, COLORREF clrFore, COLORREF clrBack, 
		LPCTSTR pszText = NULL, DWORD dwStyle = RBBS_GRIPPERALWAYS); 
 
// Implementation 
	virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); 
	virtual int OnToolHitTest(CPoint point, TOOLINFO* pTI) const; 
	virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz); 
	virtual CSize CalcDynamicLayout(int nLength, DWORD nMode); 
#ifdef _DEBUG 
	void EnableDocking(DWORD dwDockStyle); 
#endif 
 
protected: 
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam); 
	BOOL _AddBar(CWnd* pBar, REBARBANDINFO* pRBBI); 
 
	//{{AFX_MSG(CCJReBar) 
	afx_msg BOOL OnNcCreate(LPCREATESTRUCT); 
	afx_msg void OnPaint(); 
	afx_msg void OnHeightChange(NMHDR* pNMHDR, LRESULT* pResult); 
	afx_msg void OnNcPaint(); 
	afx_msg void OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS*); 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg LRESULT OnShowBand(WPARAM wParam, LPARAM lParam); 
	afx_msg void OnRecalcParent(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
// Inline functions 
///////////////////////////////////////////////////////////////////////////// 
 
inline CCJReBarCtrl& CCJReBar::GetReBarCtrl() const 
	{ return *(CCJReBarCtrl*)this; } 
 
#endif //__CJREBAR_H__ 
 
/////////////////////////////////////////////////////////////////////////////