| ツールバーのボタンにテキストを表示する |

上記の図で示すように、ツールバーのボタンにはテキストを表示することができる。
1.SDIおよびMDIのプロジェクトを新規作成する。このとき、ツールバーを持つようにする(デフォルトでそうなっている)。
2.CFrameWndクラスの派生クラスであるCMainFrameクラスのソース(MainFrm.cpp)を開く。
3.CMainFrame::OnCreate関数を以下のように修正する。
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; // 作成に失敗
}
(中略)
m_wndToolBar.SetButtonText(0, "新規ファイル");
m_wndToolBar.SetButtonText(1, "開く");
・・・・・・ // 各ボタンにテキストを設定
CRect rcButton;
m_wndToolBar.GetItemRect(0, rcButton);
m_wndToolBar.SetSizes(CSize(rcButton.Width(), rcButton.Height()), CSize(16, 15));
ShowControlBar(&m_wndToolBar, TRUE, FALSE);
return 0;
}
これで最初から用意されているツールバーのボタンにテキストを表示することができる。
CToolBar::SetButtonText関数でボタンにテキストを設定すると、ツールバーのすべてのボタンの大きさが、
その中で最大のものに統一される。これをCToolBar::GetItemRect関数で取得し、
ツールバーのサイズを変更して再度表示処理を行えばよい。