Иконка+текст на кнопке тулбара
От: bigear  
Дата: 17.09.05 17:31
Оценка:
Проблема в том, что текст сдвигается вправо по странному закону.

Делаю так:

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, добавил к проекту как ресурс — тот же "глюк".
Re: Иконка+текст на кнопке тулбара
От: 0xfeefee  
Дата: 19.09.05 17:33
Оценка:
Здравствуйте, bigear, Вы писали:


B>
B>hWndToolbar = CreateToolbarEx( 
B>  hDlg, 
B>  TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | TBSTYLE_LIST,  
B>  ID_TOOLBAR,
B>  16, hInst, IDB_BITMAP3, 
B>  (LPCTBBUTTON)&tbButtons, NUMBUTTONS, 72,16,16,16,
B>  sizeof(TBBUTTON)
B>);
B>

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

B>Однако, если загрузить иконки из ресурсов comctl32.dll, то всё работает как нужно:


B>
B>hWndToolbar = CreateToolbarEx( 
B>  hDlg, 
B>  TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | TBSTYLE_LIST,  
B>  ID_TOOLBAR,
B>  16, (HINSTANCE)HINST_COMMCTRL, IDB_STD_SMALL_COLOR,
B>  (LPCTBBUTTON)&tbButtons, NUMBUTTONS, 72,16,16,16,
B>  sizeof(TBBUTTON)
B>);
B>


ты ёмко рассказал... а теперь если можно инициализацию tbButtons увидеть бы...
стиль должен быть у кнопки BTNS_AUTOSIZE
Re[2]: Иконка+текст на кнопке тулбара
От: bigear  
Дата: 22.09.05 18:00
Оценка:
Здравствуйте, 0xfeefee, Вы писали:

0>ты ёмко рассказал... а теперь если можно инициализацию tbButtons увидеть бы...

0>стиль должен быть у кнопки BTNS_AUTOSIZE

Большое спасибо! AUTOSIZE я уже пробовал (почти с тем же результатом), однако это сообщение навело меня на мысль о размере — чтобы нормально работало кроме BTNS_AUTOSIZE (TBSTYLE_AUTOSIZE) нужно установить ширину кнопок == 0 (в CreateToolbarEx), т.к. он очевидно складывает заданную с получившейся автоматической, из-за чего и появляется лишнее пространство для иконок перед текстом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.