Есть CToolBar m_wndToolsToolBar. В OnCreate главной формы он создается следующим образом:
if (!m_wndToolsToolBar.CreateEx(this, TBSTYLE_FLAT | TBSTYLE_LIST, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, rect, ID_TOOLBAR2) ||
!m_wndToolsToolBar.LoadToolBar(IDR_TOOLSTOOLBAR))
{
TRACE0("Failed to create tools toolbar\n");
return -1; // fail to create
}
После чего устанавливаю стиль:
m_wndToolsToolBar.SetBarStyle(m_wndToolsToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
Дальше устанавливаю текст кнопкам типо:
string.LoadString(IDS_BTN_FIBOA); m_wndToolsToolBar.SetButtonText(4, string);
И ресайжу:
m_wndToolsToolBar.GetItemRect(0, rect);
m_wndToolsToolBar.SetSizes(CSize(rect.Width(), rect.Height() + 5), CSize(20, 20));
RecalcLayout();
Проблема вот в чем: текст для кнопок я гружу из ресурсов, для русскоязычной сборки русские, для англоязычной - английские; так вот при загрузке русских текстов мой тулбар удлиняется раза в полтора. Хотелось бы чтобы не было такой разницы в ширине тулбара, так как длина как русского так и английского текста приблизительно одна.
Подскажите пожалуйста, почему так происходит, и как это наименее болезненно поправить.
Добавлено через 1 час, 53 минуты и 51 секунду:Почему расползается, я понял, очевидно тулбар делает ширину всех кнопок равной ширине самой широкой кнопку. Возник новый вопрос: как для каждой кнопки установить свою ширину. если уже обсуждался этот вопрос, ткните носом, пожалуйста.
Добавлено через 19 минут и 20 секунд:Разобрался, оказывается нужно стиль кнопкам TBBS_AUTOSIZE задавать, они будут выравниваться по тексту с картинкой