Добавляю битмап на кнопку ToolBara, но не могу сделать его прозрачным. Как сделать чтобы определённый цвет в битмапе был прозрачен(например чтобы красный заменился на прозрачный)? Делаю так: Код (Text): invoke CreateWindowEx,WS_EX_TOOLWINDOW,addr clToolBar,addr clToolBar,WS_CHILD+CCS_NOPARENTALIGN+CCS_NORESIZE+TBSTYLE_LIST+TBSTYLE_FLAT+CCS_NODIVIDER, 8,16,108,22,hFrame,5,hInstance,NULL mov hToolBar,eax invoke ImageList_Create,16,16,ILC_COLOR32,4,0 mov hImageList,eax invoke LoadBitmap,hInstance,1 invoke ImageList_AddMasked,hImageList,eax,0ffh invoke LoadBitmap,hInstance,2 invoke ImageList_AddMasked,hImageList,eax,0ffh invoke LoadBitmap,hInstance,3 invoke ImageList_AddMasked,hImageList,eax,0ffh invoke LoadBitmap,hInstance,4 invoke ImageList_AddMasked,hImageList,eax,0ffh invoke SendMessage,hToolBar,TB_SETBUTTONSIZE,0,0f00fh invoke SendMessage,hToolBar,TB_SETIMAGELIST,0,hImageList invoke SendMessage,hToolBar,TB_BUTTONSTRUCTSIZE,sizeof TBBUTTON,0 invoke SendMessage,hToolBar,TB_ADDBUTTONS,4,addr tbutton invoke ShowWindow,hToolBar,SW_SHOWNORMAL
код у тебя такой, будто ты не понимаешь, какая функция что делает. зачем у тебя столько вызовов ImageList_AddMasked, когда достаточно одного? что это за параметр такой 0F00Fh в TB_SETBUTTONSIZE? это же должен быть MAKELONG (dxButton, dyButton), а у тебя получается совершенно некорректный параметр.
Ой там я и правда ошибся, должно быть Код (Text): invoke SendMessage,hToolBar,TB_SETBUTTONSIZE,0,0f000fh Что означает 16 ширина, 16 высота
Jupiter Вот сумничать нашел время а подсказать нихрена! Неужели я один это делаю? Смешно как-то. Напиши те кто-нибудь любой пример.
если ты не умеешь читать ответы - это твоя проблема. если ты считаешь, что 0Fh - это 16, а не 15 - это тоже твоя проблема. учи матчасть. если ты не отвечаешь на прямо поставленные вопросы - твоя проблема. где ответ? посмеялся - теперь подумай, что ты только вопрошаешь. тестовый проект за тебя писать? тебе от меня (или от другого участника форума) нужен готовый пример в виде исходников + скомпилированного рабочего exe? мой тебе ответ: флаг ILC_MASK в вызове ImageList_Create: Код (Text): invoke ImageList_Create,16,16,ILC_COLOR16 or ILC_MASK,19,0 но твоя манера просить о помощи... школьник чтоль?
Jupiter Да блин торопился просто и написал 16 в место 15, ну бывает, Использовал много вызовов ImageList_AddMasked из за того что битмапы отдельные были, сейчас всё собрал в один. Но зачем тебе обращать внимание на то, что не относится к вопросу? Огромное тебе спасибо за помощь. Вопрос решён.