Sample Image - sample.gif

Introduction

With this class you can easily give a professional look to your buttons in few steps. No resources are needed - all bitmaps are generated at runtime. Parts of the code come from the CxSkinButton article.

  1. Add "xShadeButton.cpp" and "xShadeButton.h" to the project.
  2. Include "xShadeButton.h" in the header file where the controls are defined
  3. Create (or edit) a member variable for each button you want to customize as CxShadeButton. If the Class Wizard doesn't show the CxShadeButton type, select CButton and then edit the code manually.
  4. In the window initialization add the CxShadeButton methods:
    BOOL CxShadeButtonDemoDlg::OnInitDialog()
    {
    	//	...
    	m_btn1.SetTextColor(RGB(255,0,0));
    	m_btn1.SetToolTipText("Button1");
    	m_btn1.SetShade(SHS_DIAGSHADE,8,10,5,RGB(55,255,55));
    // ...

CxShadeButton Class Members & Operations

CxShadeButton is derived from CButton. CxShadeButton uses 6 member functions to tune the button appearance.
The BS_OWNERDRAW style is added automatically, you don't need to set the "Owner draw" property in the resource editor.
void SetShade(UINT shadeID=0,BYTE granularity=8,BYTE highlight=10,BYTE coloring=0,COLORREF color=0);
void SetToolTipText(CString s);
COLORREF SetTextColor(COLORREF new_color);
void SetIcon(UINT nIcon, UINT nIconAlign=BS_CENTER);
void SetTextAlign(UINT nTextAlign=BS_CENTER);
void SetFlat(bool bFlag);

Release History

v1.00 - 12/05/2001

basic implementation and interface.

v1.10 - 23/05/2001

added text shift on button down.
fixed many CxDib bugs.
fixed SHS_HARDBUMP bug.
added icon support.
added text alignment.
added flat style.

Compatibility

Win95,WinNT = Yes, requires IE3.0 or higher
Win98, WinME, W2K, WinXP = Yes

For any questions, e-mail to: ing.davide.pizzolato@libero.it

Thanks to all the Code Project developers!
Special thanks to:
Milan Gardian for mouse and keyboard tracking code.
Andre Brogli, Richard Cunday, Shanker Chandrabose,
Luis, Rainer Mangold, Gilad, Rui Lopes, Tom Archer for suggestions, debugging & support.