Click here to Skip to main content
15,881,424 members
Articles / Desktop Programming / MFC

XHtmlTree - Tree control with support for HTML, XML, Smart Checkboxes, and Drag & Drop

Rate me:
Please Sign up or sign in to vote.
4.97/5 (164 votes)
1 Jan 2008CPOL22 min read 452.1K   10.1K   372  
XHtmlTree is an MFC control based on CTreeCtrl, with support for HTML text, web links, APP: links, XML load/save, Smart Checkboxes, and Drag & Drop.
// XGlyphButton.cpp  Version 1.1
//
// Author: Hans Dietrich
//         hdietrich2@hotmail.com
//
// This software is released into the public domain.  You are free to use it
// 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.
//
///////////////////////////////////////////////////////////////////////////////

#ifndef XGLYPHBUTTON_H
#define XGLYPHBUTTON_H

/////////////////////////////////////////////////////////////////////////////
// CXGlyphButton window

class CXGlyphButton : public CButton
{
// Construction/Destruction
public:
	CXGlyphButton();
	virtual ~CXGlyphButton();

	// some predefined glyphs from WingDings
	enum 
	{
		BTN_DELETE            = 0xFB, 
		BTN_CHECK             = 0xFC,
		BTN_LEFTARROW         = 0xDF,
		BTN_RIGHTARROW        = 0xE0,
		BTN_UPARROW           = 0xE1,
		BTN_DOWNARROW         = 0xE2,
		BTN_HOLLOW_LEFTARROW  = 0xEF,
		BTN_HOLLOW_RIGHTARROW = 0xF0,
		BTN_HOLLOW_UPARROW    = 0xF1,
		BTN_HOLLOW_DOWNARROW  = 0xF2
	};

	void SetCharSet(BYTE bCharSet);
	void SetFaceName(LPCTSTR lpszFaceName);
	void SetFont(LOGFONT* plf);
	void SetFont(CFont* pFont);
	void SetGlyph(UINT cGlyph);
	void SetGlyph(LOGFONT* plf, UINT cGlyph);
	void SetGlyph(CFont* pFont, UINT cGlyph);
	void SetGlyph(LONG lHeight, LONG lPointSize, LONG lWeight, 
			LPCTSTR lpszFaceName, UINT cGlyph);
	void SetGlyph(LONG lPointSize, LPCTSTR lpszFaceName, UINT cGlyph);
	void SetHeight(LONG lHeight);
	void SetPointSize(LONG lPointSize);
	void SetWeight(LONG lWeight);
	void SetWingDingButton(UINT nButton);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CXGlyphButton)
protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL

// Implementation
protected:
	LONG GetFontHeight(LONG nPointSize);
	LONG GetFontPointSize(LONG nHeight);
	void ReconstructFont();

	LOGFONT		m_lf;
	UINT		m_cGlyph;
	CFont		m_font;

	// Generated message map functions

	//{{AFX_MSG(CXGlyphButton)
	afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif //XGLYPHBUTTON_H

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Hans Dietrich Software
United States United States
I attended St. Michael's College of the University of Toronto, with the intention of becoming a priest. A friend in the University's Computer Science Department got me interested in programming, and I have been hooked ever since.

Recently, I have moved to Los Angeles where I am doing consulting and development work.

For consulting and custom software development, please see www.hdsoft.org.






Comments and Discussions