Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > BTNS_AUTOSIZE == false, но ширина кнопки меняется!


Автор: GRONN 30.10.2010, 13:46
Господа,

есть кнопка на загруженном из ресурсов тулбаре, у которой с помощью TB_SETBUTTONINFO убрана картинка, убран BTNS_AUTOSIZE, и добавлен BTNS_WHOLEDROPDWN и BTNS_SHOWTEXT (т.е. я хочу, чтобы она вела себя примерно как выпадающий комбо-бокс -- только текст и стрелочка).

Мне надо динамически (эта кнопка раскрывает попап-меню, в котором пользователь выбирает строки) менять текст на кнопке. Проблема в том, что когда я с помощью TB_SETBUTTONINFO ставлю текст -- текст меняется, но и кнопка меняет свой размер. Мне это не надо, я же убирал BTNS_AUTOSIZE. Для интереса я перед сменой текста проверял стили по TB_GETBUTTONINFO -- там, действительно, НЕТ BTNS_AUTOSIZE. Есть ли идеи, почему меняется размер? Может, кто-то сталкивался?

P.S. пробовал как с TBSTYLE_EX_MIXEDBUTTONS, так и без него (видел где-то в инете, что он может как-то интерферировать с автосайзом).

С уважением, Алексей

Автор: GremlinProg 31.10.2010, 06:32
если оставить размер кнопки постоянным - задача принципмальная,
то возможно через NM_CUSTOMDRAW это было бы сделать проще,
т.е. не ставить текст в кнопку, а рисовать его самому

Автор: GRONN 5.11.2010, 13:44
Да, в итоге так и сделал. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)