Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Иконка+текст на кнопке тулбара [Win2k, WinXP]


bigear ©   (2005-09-17 20:54:00) 

Проблема в том, что текст сдвигается вправо по странному закону.

Делаю так:
hWndToolbar = CreateToolbarEx(
 hDlg,
 TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | TBSTYLE_LIST,  
 ID_TOOLBAR,
 16, hInst, IDB_BITMAP3,
 (LPCTBBUTTON)&tbButtons, NUMBUTTONS, 72,16,16,16,
 sizeof(TBBUTTON)
);

В результате, вместо того чтобы нарисовать одну иконку (16х16) и сразу за ней текст, рисуется + , независимо от ширины кнопок и указанных размеров иконок...
Тот же эффект наблюдается в случае отсутствия иконок, т.е. hInst=IDB_BITMAP3=0 (вместо них пропуск).

Однако, если загрузить иконки из ресурсов comctl32.dll, то всё работает как нужно:
hWndToolbar = CreateToolbarEx(
 hDlg,
 TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | TBSTYLE_LIST,  
 ID_TOOLBAR,
 16, (HINSTANCE)HINST_COMMCTRL, IDB_STD_SMALL_COLOR,
 (LPCTBBUTTON)&tbButtons, NUMBUTTONS, 72,16,16,16,
 sizeof(TBBUTTON)
);


Для проверки вытащил эти иконки из comctl32.dll, добавил как ресурс - тот же "глюк".


bigear   (2005-09-22 22:13:00) [1]

Решение таки нашлось:
1. Установить стиль кнопок BTNS_AUTOSIZE (TBSTYLE_AUTOSIZE)
2. Задать ширину кнопок равной 0 (иначе заданная ширина прибавиться к полученной автоматически)


bigear   (2005-09-22 22:09:00) [2]

Решение таки нашлось:
1. Установить стиль кнопок BTNS_AUTOSIZE (TBSTYLE_AUTOSIZE)
2. Задать ширину кнопок равной 0 (иначе заданнуя ширина прибавиться к полученной автоматически)


bigear   (2005-09-22 21:07:00) [3]

Апчхи, простите.


Наверх

Титульная страница Поиск, карта сайта Написать письмо