- 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 skin to
your buttons in few steps. |


Introduction |
|
With this class you can easily give a skin to
your buttons in few steps:
- Add "xSkinButton.cpp" and "xSkinButton.h" to the project.
- Include "xSkinButton.h" in the header file where the controls
are defined
- Create (or edit) a member variable for each button you
want to customize as
CxSkinButton. If the Class
Wizard doesn't show the CxSkinButton type,
select CButton and then edit the code manually.
- Add the bitmap resource for the buttons:
- NORMAL bitmap: default button image.
- DOWN bitmap: pushed button image.
- OVER bitmap:(optional) image to shown when the mouse
is over the button. If NULL, NORMAL bitmap will be used.
- DISABLED bitmap: (optional) image for the disabled
state. If NULL, NORMAL bitmap will be used.
- FOCUS bitmap: (optional) image for the focused state.
If NULL, NORMAL bitmap will be used.
- MASK bitmap: (optional) clipping region. If you don't
use the MASK, the button will be a rectangular owner-draw
control.
The default transparent color is RGB(255,255,255).
- In the window initialization add the
CxSkinButton
methods:
BOOL CxSkinButtonDemoDlg::OnInitDialog()
{
// ...
m_btn1.SetTextColor(RGB(255,0,0));
m_btn1.SetToolTipText("Button1");
m_btn1.SetSkin(IDB_B1NORM,IDB_B1DOWN,
IDB_B1OVER,IDB_B1GRAY,
0,IDB_B1MASK,0,0,0);
// ...
-
The SetTextColor and SetToolTipText
are self explaining; SetSkin is:
void CxSkinButton::SetSkin(UINT normal,
UINT down,
UINT over,
UINT disabled,
UINT focus,
UINT mask,
short drawmode,
short border,
short margin)
normal, down, over,
disabled, focus, mask
= bitmap resource IDs
drawmode = if mask is not
NULL, this should be 0 (normal); else you can try 1
(stretch) or 2 (tiled).
border = if mask is not
NULL or is not rectangular, this should be 0; else you
can try 1 to draw the standard 3D border around the
button.
margin = if mask is not
NULL or is not rectangular, this should be 0; else you
can try to change this value to draw a dotted rectangle
over the button when the control has the focus.
|

Remarks
|
- The BS_OWNERDRAW style is added automatically, you don't
need to set the "Owner draw" property in the resource editor.
- only NORMAL and DOWN bitmaps are essential; OVER bitmap
is a plus.
- DISABLED bitmap is not necessary if the button is always
enabled. You can also use the button text (automatically
etched) to show the disabled state.
- MASK bitmap is not necessary if the button is rectangular.
- for rectangular buttons you should set the margin parameter
greater than 0 (4 is a good choice), or use the FOCUS bitmap.
- for rectangular buttons you can use 'flat' bitmaps and
set the border parameter to 1. In this situation, NORMAL
and DOWN bitmaps can also share the same resource.
|

Release History
|
v1.00 - 15/03/2001
- basic implementation and interface.
v1.10 - 28/03/2001
enhanced mouse tracking implementation (by Milan Gardian).
- SetCapture removed: accelerators now are dispatched.
- Double-click handling.
- Better behavior during "button-pressed" (mouse button down
& holding) phase
v1.20 - 02/04/2001
- New CreateRgnFromBitmap() implementation. Mask bitmap now
works in any display color mode, any mask color depth and any
mask size.
v1.21 - 14/04/2001
- OnMouseLeave cast error fixed.
- Fixed FocusRect defect when OVER bitmap was NULL.
v1.30 - 25/04/2001
- Fixed CreateRgnFromBitmap failure under WinNT4.0
v1.40 - 24/06/2001
- check & radio button add on.
- added "focus" bitmap.
- fixed CreateRgnFromBitmap bug.
- fixed shortcut bug.
- fixed text drawing code.
v1.41 - 27/10/2001
- Fixed memory leakage in CreateRgnFromBitmap |

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