私はVS2005とMFCを使用しています。私はツールバーに静的なテキストを追加するためにいくつかのコードをオンラインで続けました。しかし、スタイルをTBSTYLE_FLATまたは(TBSTYLE_FLAT | TBSTYLE_TRANSPARENT)に設定すると、区切り文字が表示され、テキストの上にちょっと目立つように見えます。 CToolBarに静的テキストを表示したり、テキストの後ろにセパレータを表示しないようにするより良い方法はありますか?ありがとう!TBSTYLE_FLATを使用してMFC CToolBarで静的テキストを正しく表示する方法
おそらくint CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT, 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; // fail to create
}
//Create Static Text
CRect rect;
int nIndex = m_wndToolBar.GetToolBarCtrl().CommandToIndex(ID_STATIC_TEST);
m_wndToolBar.SetButtonInfo(nIndex, ID_STATIC_TEST, TBBS_SEPARATOR, 40);
m_wndToolBar.GetToolBarCtrl().GetItemRect(nIndex, &rect);
rect.top = 5;
rect.right = rect.left + 50;
if(!m_static.Create("Test", WS_CHILD | WS_VISIBLE | SS_CENTER, rect, &m_wndToolBar))
{
TRACE(_T("Failed to create Static Text\n"));
return FALSE;
}
// TODO: Delete these three lines if you don't want the toolbar to be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
return 0;
}
オンラインで見つかったコードが正しくありません。ツールバーに静的なコントロールを追加するだけです。ツールバーはそのことを知らず、その存在を説明しません。 –