Introduction
This article demonstrates an easy way to add text to a docking tool bar. I needed to add text to the toolbar for my dBase Explorer project (visit my web site for detail information: http://www.codearchive.com/~dbase/). Although I found some articles on it in the code projects site. Most of them are difficult to implement and you need to add a lot of coding or even a new class. Finally I found the easy way to add text to a toolbar. So I would like to share it with the rest of the world. This article shows how you can add text to a toolbar only by adding a few lines of code.
In order to add text to a toolbar you need to declare a member variables type CToolBar
to the CMainFrame
class as shown below:
class CMainFrame : public CFrameWnd
{
protected:
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
protected:
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
...
};
If you use App Wizard to create your application, the member variable will be declared for you so do you do not need to declared it by yourself. However, you have to call the SetButtonText
function with two parameters. The first one is the index of the icon, and the second one is the actual text. The text will appear just below the icon. The index starts from 0. Each separator has also an index, so you have to count that too. The program listing below shows the index of each icon and also the text for each icon.
The complete listing of OnCreate
function is given below:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1;
}
m_wndToolBar.SetButtonText(0,"New");
m_wndToolBar.SetButtonText(1,"Open");
m_wndToolBar.SetButtonText(2,"Save");
m_wndToolBar.SetButtonText(4,"Cut");
m_wndToolBar.SetButtonText(5,"Copy");
m_wndToolBar.SetButtonText(6,"Paste");
m_wndToolBar.SetButtonText(8,"Print");
m_wndToolBar.SetButtonText(10,"About");
m_wndToolBar.SetSizes(CSize(42,38),CSize(16,15));
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
return 0;
}