- Projects
- Downloads
- Documents
- Forum
- Contact
- About me


|
 |
| Platform: |
Windows |
| License: |
Freeware |
| Release: |
1.41 |
| Last update: |
27 October 2001 |
| Description: |
With this class you can easily give a professional
look to your buttons in few steps. No bitmap resources are needed
- all bitmaps are generated at runtime. |


Introduction
|
With this class you can easily give a professional
look to your buttons in few steps. No bitmap resources
are needed - all bitmaps are generated at runtime. Parts
of the code come from the CxSkinButton
article.
The goal is to replace the standard buttons, check boxes and
radio buttons with minimal modifications in the application
code.
<>
- Add "xShadeButton.cpp" and "xShadeButton.h" to the project.
- Include "xShadeButton.h" in the header file where the
controls are defined
- 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.
- 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));
// ...
|

Class Members & Operations
|
CxShadeButton is derived from CButton.
The BS_OWNERDRAW style is added automatically,
you don't need to set the "Owner draw" property in the resource
editor. You can change some styles (flat, push-like, text alignment,
group,...) using the resource editor, however not all the styles
are currently supported.
If you change the aspect of the button at runtime, to avoid
flicker first call the functions that don't cause invalidation
(like SetShade, SetIcon or SetFont)
and than invalidate the button, for example with SetWindowText,
or directly with Invalidate.
void SetShade(UINT shadeID,
BYTE granularity,
BYTE highlight,
BYTE coloring,
COLORREF color);
Generates the button bitmaps. (important)
shadeID : can be one of these effects:
SHS_NOISE = 0
SHS_DIAGSHADE = 1
SHS_HSHADE = 2
SHS_VSHADE = 3
SHS_HBUMP = 4
SHS_VBUMP = 5
SHS_SOFTBUMP = 6
SHS_HARDBUMP = 7
SHS_METAL = 8
granularity : this parameter add an
uniform noise to the button bitmaps. A good value is from
5 to 20; 0 to disable the effect. The noise has a positive
effect because it hides the palette steps.
highlight : sets the highlight level
when the mouse is over the button. A good value is from
5 to 20; 0 to disable the effect.
coloring : sets the percentage of
color to blend in the button palette. The value
can range from 0 to 100; 0 to disable the effect.
color : if coloring is
greater than zero, color is mixed with the
standard button colors.
void SetToolTipText(CString s, CString sDown="");
Sets or changes the tool tip text. (nice)
s: String displayed in normal state.
sDown: (optional) Specifies a second
text to be displayed when a check box or radio button is
checked.
COLORREF SetTextColor(COLORREF new_color);
Sets or changes the button text color. Returns the previous
button text color. (nice)
void SetIcon(UINT nIcon,
UINT nIconAlign = BS_CENTER,
UINT nIconDown = 0,
UINT nIconHighLight = 0);
Similar to the BS_ICON style. (nice)
nIcon : ID number of the icon resource
nIconAlign : icon alignment, can be
one of the following values:
BS_CENTER
BS_LEFT
BS_RIGHT
nIconDown : (optional) ID number of
the icon resource displayed when the button is checked.
nIconHighLight : (optional) ID number
of the icon resource displayed when the mouse pointer is
over the button.
bool SetFont(CString sFontName,
long lSize=0,
long lWeight=400,
BYTE bItalic=0,
BYTE bUnderline=0);
bool SetFont(LOGFONT* pNewStyle);
LOGFONT* GetFont();
Changes the text font. (nice)
sFontName : specifies the typeface
name of the font.
lSize : (optional) text height
lWeight : (optional) text weight can
range from 0 to 1000; 100=thin, 300=light, 400=normal, 700=bold
bItalic : (optional) italic style
bUnderline : (optional) underline
style
- Remarks : use
GetFont/SetFont
with a LOGFONT structure to get/set the complete attributes
of the font. GetFont returns NULL if
the button is using the default system font.
void SetTextAlign(UINT nTextAlign=BS_CENTER);
nTextAlign : button text alignment,
can be one of the following values: (optional)
BS_CENTER
BS_LEFT
BS_RIGHT
void SetFlat(bool bFlag);
bFlag : sets the border style: (optional)
FALSE = standard 3D border.
TRUE = flat border.
|

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.
v1.20 - 23/06/2001
- fixed keyboard shortcut bug.
- check box & radio button add on.
- 2nd icon & 2nd tooltip add on.
- memory DC for painting operations.
v1.30 - 03/08/2001
- fixed SetIcon bug.
- added Font support.
v1.40 - 23/09/2001
- fixed memory leakage bug in DrawItem() and SetIcon().
- fixed second tooltip initialization bug.
- fixed OnLButtonUp() problem with drag & drop.
- added multiline tooltip support.
v1.41 - 28/10/2001
- fixed memory leakage bug in SetIcon() and in the destructor.
- added 3rd icon for highlighted state. |

Compatibility
|
Win95,WinNT = Yes, requires IE3.0 or higher
Win98, WinME, W2K, WinXP = Yes |
|
 |
|
 |
|
 |
| 2003 - 2004 ©
Davide Pizzolato - www.xdp.it |
 |
 |
|