Click here to Skip to main content
11,581,982 members (79,327 online)
Click here to Skip to main content

CTrueColorToolBar

, 21 Aug 2002 CPOL 210K 11K 75
Rate this:
Please Sign up or sign in to vote.
Very simple true color toolbar (It's true!)

Sample Image - TrueColorToolBar.jpg

Introduction

CTrueColorToolBar is a real true color toolbar. Implementation of the class is very very easy. The particularity of this toolbar is the auto detection of the mask color with the dib section of the first pixel of bitmap toolbar.

Steps to use

  1. Create dummy 16 color toolbar in VC with the number of buttons and final size you need.
  2. In your favorite painter, make 3 other true color toolbar bitmaps for state buttons (Normal, Hot, Disabled) based on the first one.
  3. Import your new true color toolbars in VC.
  4. Create new CTrueColorToolBar toolbar with the sample implementation of normal toolbar.
  5. Call LoadTrueColorToolBar function with your 3 true color toolbar bitmaps and the size of a button.
  6. That's it!

Example

//In Mainframe.h
#define TOOLBAR_DRAW_BUTTON_WIDTH 24
#include "TrueColorToolBar.h"
class CMainFrame : public CFrameWnd
{
    CTrueColorToolBar m_ToolBarDrawLeft;
}

//In Mainframe.cpp
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
        return -1;
    m_ToolBarDrawLeft.SetBorders(1, 1, 
        1, 1); //Fix for WinXP

    if (!m_ToolBarDrawLeft.Create(this, WS_CHILD | 
        WS_VISIBLE | CBRS_LEFT  | CBRS_GRIPPER | 
        CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
        !m_ToolBarDrawLeft.LoadToolBar(IDR_TOOLBAR_DRAW))
    {
        TRACE0("Failed to create toolbar\n");
        return -1; //Failed to create
    }

    m_ToolBarDrawLeft.ModifyStyle(0, 
        TBSTYLE_FLAT);//Fix for WinXP
    m_ToolBarDrawLeft.LoadTrueColorToolBar(
        TOOLBAR_DRAW_BUTTON_WIDTH,
        IDB_TOOLBAR_DRAW,
        IDB_TOOLBAR_DRAW_HOT,
        IDB_TOOLBAR_DRAW_DISABLED);
    return 0;
}

Conclusion

Note also that in the function LoadTrueColorToolBar if you omit the last parameter for disabled toolbar, you will get a default embossed disabled toolbar. Enjoy!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

DCUtility
DCUtility
Canada Canada

You may also be interested in...

Comments and Discussions

 
Questionbug in docking... Pin
msh_kr29-Aug-11 3:07
membermsh_kr29-Aug-11 3:07 
GeneralMy vote of 3 Pin
KarstenK29-Oct-10 0:39
memberKarstenK29-Oct-10 0:39 
Generaladding text Pin
JabraJabra8-Jul-04 23:20
memberJabraJabra8-Jul-04 23:20 
Generalusing CTrueColorToolBar Pin
satadru15-Dec-03 1:05
susssatadru15-Dec-03 1:05 
GeneralGDI leak Pin
manero1-Jul-03 3:33
membermanero1-Jul-03 3:33 
GeneralAdding text to toolbar Pin
ahmad0129-May-03 9:49
memberahmad0129-May-03 9:49 
GeneralRe: Adding text to toolbar Pin
luca diciotti9-Jun-03 23:05
memberluca diciotti9-Jun-03 23:05 
GeneralRe: Adding text to toolbar Pin
Eric Forget17-Nov-03 8:36
memberEric Forget17-Nov-03 8:36 
GeneralRe: Adding text to toolbar Pin
luca diciotti17-Nov-03 21:42
memberluca diciotti17-Nov-03 21:42 
GeneralProblem with TBSTYLE_AUTOSIZE Pin
Zebster26-Feb-03 2:26
memberZebster26-Feb-03 2:26 
GeneralRe: Problem with TBSTYLE_AUTOSIZE Pin
Zebster26-Feb-03 2:47
memberZebster26-Feb-03 2:47 
GeneralTransparency issue on checked state Pin
rb2628-Jan-03 3:59
memberrb2628-Jan-03 3:59 
GeneralRe: Transparency issue on checked state Pin
Dany Cantin28-Jan-03 4:27
memberDany Cantin28-Jan-03 4:27 
GeneralRe: Transparency issue on checked state Pin
rb2628-Jan-03 4:47
memberrb2628-Jan-03 4:47 
Generalwhere is the Flat Pin
Gozhhu23-Jan-03 19:27
memberGozhhu23-Jan-03 19:27 
Generalhelp with the drop arrow! Pin
Mingming Lu9-Jan-03 20:12
memberMingming Lu9-Jan-03 20:12 
GeneralRe: help with the drop arrow! Pin
Dany Cantin13-Jan-03 12:46
memberDany Cantin13-Jan-03 12:46 
QuestionAfxGetInstanceHandle vs. AfxGetResourceHandle? Pin
Franck Pascutti13-Dec-02 0:33
memberFranck Pascutti13-Dec-02 0:33 
GeneralToolBarCtrl help Pin
AnthonyWinters30-Oct-02 9:31
memberAnthonyWinters30-Oct-02 9:31 
GeneralRe: ToolBarCtrl help Pin
Dany Cantin30-Oct-02 9:55
memberDany Cantin30-Oct-02 9:55 
GeneralRe: ToolBarCtrl help Pin
AnthonyWinters30-Oct-02 11:30
memberAnthonyWinters30-Oct-02 11:30 
GeneralRe: ToolBarCtrl help Pin
AnthonyWinters30-Oct-02 12:28
memberAnthonyWinters30-Oct-02 12:28 
GeneralRe: ToolBarCtrl help Pin
Dany Cantin31-Oct-02 5:10
memberDany Cantin31-Oct-02 5:10 
QuestionCan tell me the truth? Pin
Love In Snowing23-Aug-02 2:00
memberLove In Snowing23-Aug-02 2:00 
AnswerRe: Can tell me the truth? Pin
Dany Cantin23-Aug-02 2:43
memberDany Cantin23-Aug-02 2:43 
GeneralRe: Can tell me the truth? Pin
Love In Snowing25-Aug-02 1:31
memberLove In Snowing25-Aug-02 1:31 
GeneralRe: Can tell me the truth? Pin
Dany Cantin25-Aug-02 7:01
memberDany Cantin25-Aug-02 7:01 
GeneralRe: Can tell me the truth? Pin
Zorglab27-Oct-02 21:13
memberZorglab27-Oct-02 21:13 
GeneralRe: Can tell me the truth? Pin
Dany Cantin30-Oct-02 9:56
memberDany Cantin30-Oct-02 9:56 
GeneralRe: Can tell me the truth? Pin
Zorglab2-Nov-02 3:37
memberZorglab2-Nov-02 3:37 
GeneralRe: Can tell me the truth? Pin
LordLiverpool4-Dec-02 0:06
memberLordLiverpool4-Dec-02 0:06 
GeneralRe: Can tell me the truth? Pin
Dany Cantin5-Dec-02 3:33
memberDany Cantin5-Dec-02 3:33 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150603.1 | Last Updated 22 Aug 2002
Article Copyright 2002 by DCUtility
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid