www.pudn.com > CustToolBar.rar > DkToolBar.h


// DkToolBar.h : header file 
// 
 
///////////////////////////////////////////////////////////////////////////// 
// CDkToolBar window 
#ifndef	__CDKTOOLBAR__ 
#define	__CDKTOOLBAR__ 
 
class CToolBarInfo 
{ 
public: 
	TBBUTTON		 tbButton;		// information regarding the button 
	LPCTSTR			 btnText;		// text for the button 
}; 
 
class CDkToolBar : public CToolBar 
{ 
// Construction 
public: 
					// default construction 
					 CDkToolBar(); 
 
					// overridden Create(...) allows initialization of toolbar 
					 // information which allows user-customization; allows 
					 // specification of registry key which allows toolbar 
					 // state persistance 
	BOOL			 Create(CWnd *pParentWnd, 
						DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, 
						UINT nID = AFX_IDW_TOOLBAR, 
						CToolBarInfo *tbInfo = NULL, 
						CString regSubKey = "", 
						CString regValue = "", 
						HKEY regKey = HKEY_CURRENT_USER); 
 
					// overridden LoadToolBar allows automatic restoration 
					 // of toolbar information and calculation of total 
					 // button count 
	inline BOOL		 LoadToolBar(UINT idResource, BOOL restore = FALSE) 
						{ 
								BOOL		 success;		// indicates success; 
 
							// load the toolbar bitmap 
							success = CToolBar::LoadToolBar(idResource); 
 
							// count the buttons 
							nButtons = GetToolBarCtrl().GetButtonCount(); 
 
							// if we're supposed to restore last setting 
							if (restore) 
							{ 
								RestoreState(); 
							} 
							return success; 
						} 
 
 
// Attributes 
public: 
	virtual BOOL	 PreTranslateMessage(MSG* pMsg); 
	void			 SaveState(); 
	void			 RestoreState(); 
	int				 NButtons();			// number of buttons on toolbar 
 
// Operations 
public: 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CDkToolBar) 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	virtual ~CDkToolBar(); 
 
	// Generated message map functions 
protected: 
	CToolBarInfo	*toolBarInfo;		// table of buttons and text 
	int				 nButtons;			// number of buttons on toolbar 
	CSize			 defBtnSize;		// default button size 
	CSize			 defImgSize;		// default image size 
	CSize			 txtBtnSize;		// size of buttons with text 
	BOOL			 iconsAndText;		// indicates if text is shown under icons 
	HKEY			 registryKey;		// key where toolbar information is kept 
	CString			 registrySubKey;	// key where toolbar information is kept 
	CString			 registryValue;		// value where toolbar information is kept 
 
	//{{AFX_MSG(CDkToolBar) 
	afx_msg void OnPopupCustomize(); 
	afx_msg void OnDestroy(); 
	//}}AFX_MSG 
	afx_msg void OnToolBarQueryDelete(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarQueryInsert(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarChange(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarBeginDrag(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarEndDrag(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarBeginAdjust(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarCustomHelp(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarEndAdjust(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarGetButtonInfo(NMHDR *notify, LRESULT *result); 
	afx_msg void OnToolBarReset(NMHDR *notify, LRESULT *result); 
	afx_msg void OnContextMenu(CWnd*, CPoint point); 
 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
#endif