What's New
Carried out some changes as suggested by Russ Freeman. The Changes are as follows
- Moved all string in code to String Table
- Delete unwanted sub-class files
CStatusBar
- Added menu to generate 3 types of ToolBars
- Retained Old Toolbar as is
- New Toolbars use Arrays
- Added Date & Time on the Statusbar
- Added message Maps for new Toolbars
Introduction
This Article demonstrates the technique of creating Toolbar and StatusBar on a Dialog Window.
To acheive the goal you create a Dialog-based project from the New Project Wizard, a blank form with Ok and Cancel buttons is created by default.
Delete the buttons since you will most probably be making the project menu-driven.
CWinApp* pApp = AfxGetApp();
mImageList->Create(24, 24, ILC_COLOR8 | ILC_MASK, 9, 9);
mImageList->Add(pApp->LoadIcon(IDI_HELP));
mImageList->Add(pApp->LoadIcon(IDI_BOLD));
mImageList->Add(pApp->LoadIcon(IDI_DRAWING));
mImageList->Add(pApp->LoadIcon(IDI_STRIKEOUT));
TBBUTTON tb;
m_ToolBar.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|TBSTYLE_FLAT,
CRect(0,0,0,0), this, 0);
m_ToolBar.SetImageList(&m_pImageList);
tb.iBitmap = 0;
tb.iString = NULL;
tb.fsState = TBSTATE_ENABLED;
tb.fsStyle = TBSTYLE_BUTTON;
tb.idCommand = ID_HELP_ABOUT;
m_ToolBar.AddButtons(1, &tb);
tb.iBitmap = 1;
tb.idCommand = ID_BOLD;
m_ToolBar.AddButtons(1, &tb);
tb.iBitmap = 2;
tb.idCommand = ID_DRAWING;
m_ToolBar.AddButtons(1, &tb);
TBBUTTON tb1;
tb1.fsStyle = TBSTYLE_SEP;
m_ToolBar.AddButtons(1, &tb1);
tb.iBitmap = 3;
tb.idCommand = ID_STRIKEOUT;
tb.iString = NULL;
m_ToolBar.AddButtons(1, &tb);
m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW,
CRect(0,0,0,0), this, 0);
int strPartDim[4]= {180, 260, 340, -1};
m_StatusBar.SetParts(4, strPartDim);
m_StatusBar.SetText(_T("Dialog / StatusBar / Toolbar"),0,0);
m_StatusBar.SetText(_T("Example"), 1, 0);
CString string;
string.LoadString(IDS_MYCOMPUTER);
m_StatusBar.SetText(string, 3 ,SBT_NOBORDERS );
m_StatusBar.SetIcon(3, SetIcon(AfxGetApp()->LoadIcon(IDI_COMP), FALSE));