Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Битмэпы панели инструментов

4.6K
29 апреля 2004 года
The Lich
14 / / 26.03.2004
Помогите разобраться с битмэпами, которые изображаются на кнопках панелей инструментов(Toolbar).
Я рисую на Photoshop'е несколько битмэпов в true color'е (размер 16x15). Потом преобразую их в 16-цветные. После этого каждый битмэп имеет свою палитру. В своей программе я создаю toolbar и присоединяю к нему эти битмэпы по одному. Когда я запускаю программу, битмэпы отображаются неправильно: некоторые цвета становятся другими, некоторые цвета становятся прозрачными, а тот цвет, который я хотел сделать прозрачным, рисуется непрозрачным. Не все битмэпы так глючат, но многие. Я не нашел никакой связи между индексом цвета или его RGB значением и тем, как он отображается.
424
29 апреля 2004 года
(C)dragon
307 / / 04.12.2002
А зачем 16-цветные то делать? Значки эти должны быть в true color.
4.6K
02 мая 2004 года
The Lich
14 / / 26.03.2004
Попробовал True Color'ные битмэпы - не получилось.
Я - полный ламер в Windows 95. Пользуюсь для создания панели инструментов функцией CreateToolbar(). Когда до нее доходит дело, она, видимо пытаясь взять из ресурсов этот 24-битный битмэп, вылетает с сообщением "программа совершила недопустимую операцию...". А 256-цветные битмэпы программа не рисует. Что же делать?
424
02 мая 2004 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by The Lich
Попробовал True Color'ные битмэпы - не получилось.
Я - полный ламер в Windows 95. Пользуюсь для создания панели инструментов функцией CreateToolbar(). Когда до нее доходит дело, она, видимо пытаясь взять из ресурсов этот 24-битный битмэп, вылетает с сообщением "программа совершила недопустимую операцию...". А 256-цветные битмэпы программа не рисует. Что же делать?



Windows 95???
Да, это серьёзно. Значит так, выкидываешь подальше этот 95, ставишь XP, и пользуешься функцией CreateToolBarEx. Рисовать, если не знаешь, надо в линию, т.е. все значки в одном рисунке, желательно 16x16. Потом делаешь массив структур:

TBBUTTON toolbar_buttons[] = {
{0, IDM_???1, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL},
{1, IDM_???1, TBSTATE_ENABLED, TBSTYLE_BUTTON, NULL, NULL} ... };

И вызываешь CreateToolbarEx(hDlg, WS_CHILD, ???, 10, NULL, (UINT)LoadBitmap(hInstance, "BITMAP_0", toolbar_buttons, ???, 16, 16, 16, 16, sizeof(TBBUTTON));

И всё работает как надо.

4.6K
04 мая 2004 года
The Lich
14 / / 26.03.2004
Спасибо, (c)dragon. Все сканало.
Я писал так:
CreateToolbarEx(hWnd,флаги,???,???,[COLOR=red]hInstance[/COLOR],[COLOR=red]IDB_TOOLS[/COLOR],ToolbarButtons,кол-во кнопок,0,0,0,0,sizeof(TBBUTTONS));
Это работало только с 16-цветными битмэпами. А теперь попробовал так:
CreateToolbarEx(hWnd,флаги,???,???,[COLOR=green]NULL[/COLOR] ,[COLOR=green](UINT)LoadBitmap(hInstance,(char*)IDB_TOOLS)[/COLOR] ,ToolbarButtons,кол-во кнопок,0,0,0,0,sizeof(TBBUTTONS));
Не знаю, в чем тут прикол, но в таком виде заработало.
424
04 мая 2004 года
(C)dragon
307 / / 04.12.2002
Цитата:
Originally posted by The Lich
Не знаю, в чем тут прикол, но в таком виде заработало.



Прикол в том, что непонятно, что такое ID ресурса, нет такого определения, поэтому у тебя вместо рисунка могло что угодно загружаться. А так загружаешь рисунок, и всё нормально.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог