IgorAQuote:
1 Как быть если меню накрывает кнопку ? При "не удачном" нажатии программа выполняет действия на меню и на нижнюю нажатую кнопку ...
а) Если кнопка работает через функцию 8, то поможет удаление и переопределение конкретных срабатывающих кнопок. При этом поскольку внешний вид восстанавливается, то перерисовывать картинку не нужно.
б) Чтобы исключить влияние на другие элементы, которые реализованы в самой программе через событие мыши (например тот же DinamicButon), то нужно не обрабатывать текущий случай для мыши, а обрабатывать только следующий.
Вообще разведение логики среди элементов управления это отдельная задача, иногда приходится поломать голову.
Quote:
2 Как при автоматической перерисовке меню учесть параметры скина ? Я пока делаю общую перерисовку окна после нажатия каждого пункта меню, но чувствую что это не правильно ...
Я не совсем понял как возникла твоя ситуация.
Если у тебя в процессе работы приограммы поменялся системный скин, то естественно надо корректировать при полной перерисовке окна координаты в:
Code:
.x:
.size_x dw 0 ;+4
.start_x dw 0 ;+6 <----вот это
.y:
.size_y dw 0 ;+8
.start_y dw 0 ;+10 <---- и вот это
а также координаты развернутой части меню:
Code:
.x1:
.size_x1 dw 0 ;+32
.start_x1 dw 0 ;+34 <----вот это
.y1:
.size_y1 dw 0 ;+36
.start_y1 dw 0 ;+38 <---- и вот это
Код работает с абсолютными координатами и все в руках программиста.