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


///////////////////////////////////////////////////////////////////////////// 
// CJFontCombo.h : header file 
// Copyright © 1998-1999 CodeJock.com, All Rights Reserved. 
// See ReadMe.txt for TERMS OF USE. 
// 
// Based on the article 'Owner Drawn Font Selection ComboBox' by Girish Bharadwaj 
// http://www.codeguru.com/misc/font_selection_combo.shtml 
// 
///////////////////////////////////////////////////////////////////////////// 
/**************************************************************************** 
 * 
 * $Date: 10/31/99 11:01p $ 
 * $Revision: 4 $ 
 * $Archive: /CodeJock/Include/CJFontCombo.h $ 
 * 
 * $History: CJFontCombo.h $ 
 *  
 * *****************  Version 4  ***************** 
 * User: Kirk Stowell Date: 10/31/99   Time: 11:01p 
 * Updated in $/CodeJock/Include 
 * Overrode OnEraseBkgnd(...) and OnPaint() for flicker free drawing. 
 *  
 * *****************  Version 3  ***************** 
 * User: Kirk Stowell Date: 10/26/99   Time: 10:41p 
 * Updated in $/CodeJock/Include 
 * Made class methods virtual for inheritance purposes. Added the 
 * DECLARE_DYNAMIC and IMPLEMENT_DYNAMIC macros to CCJFontCombo for access 
 * to run-time information 
 *  
 * *****************  Version 2  ***************** 
 * User: Kirk Stowell Date: 8/31/99    Time: 1:11a 
 * Updated in $/CodeJockey/Include 
 * Updated copyright and contact information. 
 *  
 * *****************  Version 1  ***************** 
 * User: Kirk Stowell Date: 7/26/99    Time: 2:11p 
 * Created in $/CodeJockey/Include 
 *  
 ***************************************************************************/ 
///////////////////////////////////////////////////////////////////////////// 
 
#ifndef __CJFONTCOMBO_H__ 
#define __CJFONTCOMBO_H__ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
/////////////////////////////////////////////////////////////////////////// 
// CCJFontCombo window 
class  CCJFontCombo : public CComboBox 
{ 
	DECLARE_DYNAMIC(CCJFontCombo) 
 
// Construction 
public: 
     CCJFontCombo(); 
 
// Attributes 
protected: 
 
	COLORREF	m_clrHilight; 
	COLORREF	m_clrNormalText; 
	COLORREF	m_clrHilightText; 
	COLORREF	m_clrBkgnd; 
 
// Operations 
public: 
 
	virtual int GetSelFont(LOGFONT& logFont); 
	virtual void SetHilightColors(COLORREF clrHilight,COLORREF clrHilightText); 
	virtual void SetNormalColors(COLORREF clrBkgnd,COLORREF clrNormalText); 
	static BOOL CALLBACK EnumFontProc(LPLOGFONT lpLogFont, LPTEXTMETRIC lpTextMetric, short nFontType, LPHANDLE lpData); 
 
protected: 
 
	virtual void InitializeFonts(); 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CCJFontCombo) 
	public: 
	virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); 
	virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); 
	protected: 
	virtual void PreSubclassWindow(); 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
     virtual ~CCJFontCombo(); 
 
// Generated message map functions 
protected: 
	 
	//{{AFX_MSG(CCJFontCombo) 
	afx_msg void OnDestroy(); 
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	afx_msg BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg void OnPaint(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
//	Inline Functions 
///////////////////////////////////////////////////////////////////////////// 
 
inline void CCJFontCombo::SetHilightColors( COLORREF clrHilight, COLORREF clrHilightText ) 
	{ m_clrHilight = clrHilight; m_clrHilightText = clrHilightText; }; 
 
inline void CCJFontCombo::SetNormalColors( COLORREF clrBkgnd, COLORREF clrNormalText ) 
	{ m_clrNormalText = clrNormalText; m_clrBkgnd = clrBkgnd; }; 
 
/////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Developer Studio will insert additional declarations immediately before the previous line. 
 
#endif // __CJFONTCOMBO_H__