
Introduction
This is my attempt to create a simple toolbar class that allows to set a bitmap in the
background of a toolbar.
It is not as successful as the BCGControl lib but that's a beginning...
Some improvements could be made; for example, a hot image is not used. The process also
flickers a little
when clicking a button. The class should also be modified to Load the background only once to update
only the buttons rect.
To use
- Create the toolbar as usual:
if (!myToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,
DB_BITMAP_TAHITI, IDB_BITMAP_TOOLBAR, 9, false) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; }
DB_BITMAP_TAHITI = id of the background bitmap.
IDB_BITMAP_TOOLBAR = id of the toolbar bitmap.
9 is the number of buttons of the bitmap.
false is a boolean that define if the background bitmap must be stretched
if its size is different of the toolbar.
Note that TBSTYLE_FLAT will create flat format buttons... else, standard 3D buttons will be added.
- Set the style of the process,
IM_STRECH or IM_TRANSPARENT.
IM_TRANSPARENT will take the toolbar image as it is and remove the background color.
IM_STRECH stretch the bitmap to the size of the button.
m_wndToolBar.ImageStyle = IM_TRANSPARENT;
m_wndToolBar.MaskColor = RGB(198, 195, 198);
- Define if the bitmap must be applied on the complete control frame or only on the toolbar.
m_wndToolBar.all_frame = true;
- You can modify the type of button with the
DrawEdge function's options.