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

上記の図で示すように、ツールバーのボタンにはテキストを表示することができる。

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関数で取得し、 ツールバーのサイズを変更して再度表示処理を行えばよい。

目次へ