· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Кнопка, битмап, мерцание - проблемка

Посл.отвђт Сообщенiе


Дата: Июн 1, 2004 14:30:50

Компильните код пожалста. Почему-то когда мышь наводишь на кнопку с битмапами, то происходит какое-то мерцание.
Наверно, это из-за проверок координат мыши над областью и быстрой смене картинок, или из-за...а фиг знает...
Короче, кнопка с 4-мя битмапами, два состояния кнопки...ээ увидите =). Кнопка сабклассированная и с тултипами, но на них не обращайте внимания.
...
Может какой-то спец приём для избавления от мерцания есть? Или нет?
Если есть, то очень хотелось бы узнать =)...
Заранее спасибо.

_1220716687__Битмап кнопка.rar


Дата: Июн 1, 2004 14:50:23

Наверно, это из-за проверок координат мыши над областью и быстрой смене картинок, или из-за...а фиг знает...

Наверное . И ещё LoadCursor ...
Нафига всё это делать по WM_MOUSEMOVE ?
При каждом движении мыши у тебя меняються картинки , а стоит менять всего два раза , при входе в область кнопки и при выходе


Дата: Июн 1, 2004 15:29:35

ну ето не из-за курсора...а вот, что проверка и смена картинок при каждом движении мыши это да...только не знаю как это сделать по-другому...пока не знаю


Дата: Июн 1, 2004 16:13:25

Если движение мыши уже отловлено, картинку поменяли, то необходимо выставить глобальный флаг что сие событие уже свершилось, далее проверять его значение, а также обнулять его при выходе курсора за пределы, тогда мерцания не будет!


Дата: Июн 1, 2004 20:48:39

А! Точно! В примере-то с разными стилями кнопок так и делается, но я не понимал для чего это...Всё ясно, спасиб.


Дата: Июн 2, 2004 03:37:36

Читай описание TrackMouseEvent. Для flicker-free drawing используй off-screen контекст.


Дата: Июн 2, 2004 07:55:08

Ok!


Дата: Июн 2, 2004 08:23:50

Всё получилось, получил ещё немного экспы =)

1848704363__Битмап кнопка.rar


Дата: Июн 2, 2004 10:36:19

NitroCephal

А LoadCursor всё равно оставил .
Зачем его постоянно загружать по WM_MOUSEMOVE !
Перемести туда где картинки меняешь , ещё можна некоторые участки оформить в качестве процедур и подпрограмм .
А если битмапов много , то лучше юзать JPG,GIF,PNG например .
И вторые (hover) битмапы отличаються от первых только яркостью (маской) , подозреваю это можно реализовать api-функциями .


Дата: Июн 2, 2004 18:35:59

Да, всё верно говоришь. Я не оставлю без внимания твои советы. Просто я эту кнопку всего за один день наваял и в первый раз. А перед этим,я, мучался с овнердравными кнопками и табконтролом, но они мне что-то не очень понравились - интереснее и красивее с битмапными. Всё, буду дальше ваять =).


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.424