![]() |
Desktop Development »
Static & Panel Controls »
General
Intermediate
A Gradient Static ControlBy Irek ZielinskiA Static control will gradient |
VC6, VC7Win2K, WinXP, MFC, Dev
|
|
Advanced Search |
|
|
|
||||||||||||||||

I was looking through this site (and a few others) in order to find a simple, easy to use control that looks better than the ordinary CStatic. Unfortunately, I was not successful - there are a lot of cool controls around but I needed something different. One of the articles I read entitled CTitleMenu contains a class that creates a menu with a nice gradient title - that was it!. I decided to incorporate some of the code to create a nice static control.... and here it is.
How to add this control to your project:
#include "GradientStatic.h" in files where you plan to use this class.
CStatic definitions to CGradientStatic.
CGradientStatic APIThis control is derived from CStatic and adds only a few new functions. Please note that this class is not perfect. If you need some other features - just modify it!
By default CGradientStatic uses the following colors:
COLOR_ACTIVECAPTION)
COLOR_BTNFACE)
void SetColor(COLORREF cl); // Use this function to change left color of gradient. //For example this will set a RED color. SetColor(RGB(255,0,0)); //this will use one of system defined colors SetColor(GetSysColor(COLOR_ACTIVECAPTION)); void SetGradientColor(COLORREF cl); //Use this function to changes right color of gradient. void SetTextColor(COLORREF cl); //Use this function to changes color of text. void SetLeftSpacing(int iNoOfPixels); //If text isn't centered you can use this function to set a point where //CGradientStatic should start painting text. //On default control leaves 10 pixels from the right side. void SetTextAlign(int iAlign ) //Use this function to change text aligment. //Acceptable values: 0 - left, 1 - center, 2 -right void void SetVerticalGradient(BOOL a_bVertical = TRUE) //Use this function to set vertical gradient
m_pBoldFont = new CFont; //delete it in destructor m_pBoldFont->CreateFont(25,0,0,0,900,0,0,0,0,0,0, ANTIALIASED_QUALITY,0,"Arial"); //Use big font and standard colors m_cExample.SetFont(m_pBoldFont); m_cExample.SetWindowText("This is CGradientStatic example :)"); //Use standard font & centered text m_cExample2.SetWindowText("This text is in the center !"); m_cExample2.SetColor(RGB(255,0,0)); m_cExample2.SetGradientColor(RGB(0,0,0));
This control loads the GradientFill function dynamically from msimg32.dll. If this load fails, for whatever reason, no gradient fill will be performed, but no crash should occur either. This control is free to use :)
26th April 2004
Added support of vertical gradients, new improved demo application.
6th May 2003
Removed few limitations of previous version. Now code is smaller, simpler and works a bit better.
6th Octber 2002
Paolo Adami suggested a small addition to this control. Thanks to function DrawGradRect(CDC *pDC, CRect r, COLORREF cLeft, COLORREF cRight) - control will draw gradient background also on systems that don't have msimg32.dll library installed. This code is not such a fancy algorithm as msimg32.dll library and produces worse effect - but it works fine.
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 26 Apr 2004 Editor: Nishant Sivakumar |
Copyright 2002 by Irek Zielinski Everything else Copyright © CodeProject, 1999-2009 Web17 | Advertise on the Code Project |