CShadeButtonST - A CxShadeButton made using CButtonST

Environment: VC6 SP4, NT4, Win2000, Win9x
Abstract
CxShadeButton
posted by Davide Pizzolato. The idea I have is to make available one or two virtual
functions from CButtonST
, the reference control for MFC flat buttons, to
let the developer derive his own class and implement custom background paint still having
all the features from the CButtonST
control.
To show this new feature I've decided to reproduce the look and feel of
CxShadeButton
. I've extracted from the original code the class called
CxDib
and the code that creates and draws the background effects. All
credits for this code snippets go to Davide Pizzolato.
Virtual functions
CButtonST
makes available two virtual functions.
OnDrawBackground
This function is called every time the button background needs to be painted.
If the button is in transparent mode this function will NOT be called.
// Parameters:
// [IN] pDC
// Pointer to a CDC object that indicates the device context.
// [IN] pRect
// Pointer to a CRect object that indicates the bounds of the
// area to be painted.
//
// Return value:
// BTNST_OK
// Function executed successfully.
//
DWORD OnDrawBackground(CDC* pDC, LPCRECT pRect)
OnDrawBorder
This function is called every time the button border needs to be painted.
If the button is in standard (not flat) mode this function will NOT be called.
// Parameters:
// [IN] pDC
// Pointer to a CDC object that indicates the device context.
// [IN] pRect
// Pointer to a CRect object that indicates the bounds of the
// area to be painted.
//
// Return value:
// BTNST_OK
// Function executed successfully.
//
DWORD OnDrawBorder(CDC* pDC, LPCRECT pRect)
The developer derives a class from CButtonST
then implements these two functions in the new class.
Example
The CButtonST
demo application includes a page that shows how to implement new effects. A class
called CShadeButtonST
has been derived from CButtonST
and the new effects has been implemented
mainly in the OnDrawBackground
method.
Remarks
This architecture makes possible to produce a whole range of buttons not available by default. If someone implements
the look and feel of the new buttons found in Windows XP, I will happy to include his code in the next
CButtonST
demo application.
Downloads
Download demo project - 682 KbDownload source - 10 Kb
Comments
Tooltips not working
Posted by stevefr on 01/04/2007 01:14pmI can not get tooltips to work for the buttons Anyone have any idea to get tooltips to work. Calling the ActivateTooltip() method for a button does not work. I am running the code compiled in Net 2003
Replyproblem when hosted inside ATL composite controls
Posted by Legacy on 11/26/2002 12:00amOriginally posted by: Derradji Rachid
Need Help
Posted by Legacy on 10/03/2002 12:00amOriginally posted by: Jeremy
Hi, I've downloaded the button control that you created and i found it very useful. And there is one thing i think u might be able to help, which is How to Make a Static Label transparent with the background? From the files, I learnt how to make a Button transparent, but what about the Static Label? I would be glad if you could tell me the solution. Thanks.
Flicker problem
Posted by Legacy on 09/17/2001 12:00amOriginally posted by: John
Nice piece of work... but again... will the flicker problem be attended to?
Reply
problem in CButtonST maybe ?
Posted by Legacy on 09/11/2001 12:00amOriginally posted by: rojo
I had trouble with CButtonST, it would use up all
my resources after a while, anybody had same problems ?!
Reply
There is a bug!
Posted by Legacy on 07/23/2001 12:00amOriginally posted by: Dimka
When I work with this buttons for a long time, they stops answer!
ReplyReally Superb!
Posted by Legacy on 07/22/2001 12:00amOriginally posted by: Suria
Really Superb!
ReplyGreat Job, thanks !!!
Posted by Legacy on 07/11/2001 12:00amOriginally posted by: Adrian
Fantastic !!!
Reply