Привет всем.
Можно ли как то с помощью WINAPI добавить кнопку в произвольное место на тулбаре? Т.е., скажем, имеется тулбар, добавляем кнопки:
TBBUTTON _separator;
ZeroMemory((void*)&_separator, sizeof(TBBUTTON));
_separator.idCommand = 0;
_separator.fsState = TBSTATE_ENABLED;
_separator.fsStyle = BTNS_SEP;
_separator.dwData = 0;
// Toolbar buttons
TBBUTTON tbButtons [ ] =
{
{MAKELONG(IDM_ADD, ImageListID), IDM_ADD, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0},
{MAKELONG(IDM_DELETE, ImageListID), IDM_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0},
_separator,
{MAKELONG(IDM_PLAY, ImageListID), IDM_PLAY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0},
{MAKELONG(IDM_STOP, ImageListID), IDM_STOP, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0},
_separator,
{MAKELONG(IDM_SETTINGS, ImageListID), IDM_SETTINGS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0},
_separator,
{MAKELONG(IDM_HELP, ImageListID), IDM_HELP, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0L, 0},
};
// Add buttons.
SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
SendMessage(hWndToolbar, TB_ADDBUTTONS, (WPARAM)(numButtons+3/*separators*/), (LPARAM)&tbButtons);
кнопки добавляются в прямом порядке, слева-направо, в левую часть тулбара. Интересует возможность добавлять любую новую кнопку, в центр тулбара, или, скажем, в конец тулбара — в правую часть тулбара.
Здравствуйте, Birkin, Вы писали:
skip
TB_INSERTBUTTON тебе поможет
Здравствуйте, Андрей, Вы писали:
А>Здравствуйте, Birkin, Вы писали:
А>skip
А>TB_INSERTBUTTON тебе поможет
Возможно, я не совсем понятно выразился, вот здесь
http://savepic.ru/540382.jpg
показан тулбар как он должен выглядеть.
TB_INSERTBUTTON сообщение вставляет кнопку только в левую часть
тулбара.
Здравствуйте, Андрей, Вы писали:
А>Здравствуйте, Birkin, Вы писали:
А>skip
А>Честно говоря, не очень понятно
А>С помощью TB_ADDBUTTON ты добавляешь кнопки
А>С помощью TB_INSERTBUTTON ты вставляешь их в нужном месте (задавая индекс кнопки, слева от которой нужно вставить новую)
А>А втыкать кнопки куда попало в тулбаре имхо не получится, не рассчитан он на это
А>Сделать это, конечно, можно
А>Но мне кажется, что геморроя будет слишком много
А>Зачем это, если не секрет?
прихоть заказчика
А>Если уж очень нужно, можно попробовать сепараторов натыкать перед кнопкой или после нее
такой вариант я рассматривал, но отбросил его из-за его потенциальной геморности...
При масштабировании крайняя кнопка Support должна быть всегда справа в тулбаре. Тут эти сепараторы поперёк горла станут...
Ещё варианты?
Здравствуйте, Birkin, Вы писали:
А>>А втыкать кнопки куда попало в тулбаре имхо не получится, не рассчитан он на это
А>>Сделать это, конечно, можно
А>>Но мне кажется, что геморроя будет слишком много
А>>Зачем это, если не секрет?
B>прихоть заказчика
А>>Если уж очень нужно, можно попробовать сепараторов натыкать перед кнопкой или после нее
B>такой вариант я рассматривал, но отбросил его из-за его потенциальной геморности...
B>При масштабировании крайняя кнопка Support должна быть всегда справа в тулбаре. Тут эти сепараторы поперёк горла станут...
B>Ещё варианты?
Все эти втыкания в произвольные места обычно делаются через disabled кнопки без текста. То есть все на самом деле left aligned только визуально выглядит как в разных местах.
если делаешь через OWNER DRAW так вообще нет проблем — не рисуй ничего для промежуточных невидимых кнопок
Здравствуйте, dudkin, Вы писали:
D>Здравствуйте, Birkin, Вы писали:
А>>>А втыкать кнопки куда попало в тулбаре имхо не получится, не рассчитан он на это
А>>>Сделать это, конечно, можно
А>>>Но мне кажется, что геморроя будет слишком много
А>>>Зачем это, если не секрет?
B>>прихоть заказчика
А>>>Если уж очень нужно, можно попробовать сепараторов натыкать перед кнопкой или после нее
B>>такой вариант я рассматривал, но отбросил его из-за его потенциальной геморности...
B>>При масштабировании крайняя кнопка Support должна быть всегда справа в тулбаре. Тут эти сепараторы поперёк горла станут...
B>>Ещё варианты?
D>Все эти втыкания в произвольные места обычно делаются через disabled кнопки без текста. То есть все на самом деле left aligned только визуально выглядит как в разных местах.
D>если делаешь через OWNER DRAW так вообще нет проблем — не рисуй ничего для промежуточных невидимых кнопок
Спасибо за совет, обязательно попробую