65.9K
CodeProject is changing. Read more.
Home

A Gradient Static Control

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.75/5 (14 votes)

Oct 7, 2003

viewsIcon

51371

downloadIcon

1498

A Static control with a gradient

Sample Image - gradientstatic.jpg

Introduction

The idea was to have a small piece of code which makes it easy to create a gradient control. I saw a lot of great code, but it was not exactly what I want.  So I decided to create my own CGradientStatic-class.

Usage of CGradientStatic

To use this control in your application:

  • Design the dialog and add the Static control
  • Add the GradientStatic.h header file to your project
  • Assign a CGradientStatic to your static control.
  • In OnInitDialog(), subclass CGradientStatic control to ID using the SubclassWindow method.
#include "CGradientStatic.h"


//...


class CMainDlg : public CDialogImpl<CMainDlg>
{     
    BEGIN_MSG_MAP(CMainDlg)          
       ...          
       MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)          
       REFLECT_NOTIFICATIONS()     
    END_MSG_MAP()
    ...
    LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, 
        LPARAM /*lParam*/, BOOL& /*bHandled*/);
    ...
    CGradientStatic m_GradientBar;     
    ...
}; 

//...


LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, 
      LPARAM /*lParam*/, BOOL& /*bHandled*/) 
{
     ...     
     m_GradientBar.SubclassWindow( ::GetDlgItem( IDC_STATIC1 ) );     
     m_GradientBar.SetColor(RGB(255,0,0));
     m_GradientBar.SetGradientColor(RGB(0,0,0));

     ...
}