снова о popup menu | |
---|---|
krin Сообщений: 192 Дата регистрации: 08.02.2005 |
собирался написать в прошлом году, и не собрался. соседняя тема подтолкнула доработать код и таки сообщить.
здесь не вопрос, а вариант решения к ранее обсуждавшейся теме. есть объект, выглядящий как комбобокс, для множественного выбора из выпадающего списка. При нажатии под ним разворачивается меню DEFINE POPUP, и отмечаем галками. Клик вне списка его закрывает. И появилась форма, где этот список оказался длинным. Надо было к нему сделать POPUP SHORTCUT для быстрого выбора "почти всех" строк. для этого подошло решение "Shortcut Menu Class" из архива news2news github.com сделал его активацию на WM_RBUTTONUP, отдал пользователям. у этого Win API меню был недостаток: оно отличалось от других меню. в клубе когда-то обсуждалось меню Herman Tan'a, рисуемое API forum.foxclub.ru сделал вариант меню "как в VFP". тк я хотел всего лишь получить popup в стиле VFP, за исходную брал версию от 21.07.2005 www.levelextreme.com потом добавил понравившуюся функциональность из последней ver 1.62.053 от 09.2008. что здесь оригинального: 1) AppendMenu() заменена на InsertMenuItem() 2) вид, поведение меню как popup VFP - цвета, размер и положение строки/разделителя, неперескакивание disabled-строк при проходе 3) автор при выводе иконки берёт её цвет в точке (0,0) - левый верхний угол - и делает его прозрачным на всей иконке. Здесь по умолчанию цвет не меняется, можно это указать для конкретных иконок. 4) тк в VFP-меню при проходе по строкам подсвечивается только текстовая часть (за исключением disabled-строк, они полностью), то иконки рисуются только один раз. ушло моргание disabled-иконок, тк они перерисовываются только при проходе по disabled-строке. 5) центрирование иконки по высоте строки меню эти доработки действуют и на системное меню. класс выводит меню в 3 вариантах: - только ф-ей InsertMenuItem() - popup menu - ф-ей + код Herman Tan с поправками 1), 3), 5) - popup, system menu - ф-ей + код Herman Tan с поправками 1) - 5) "как в VFP" - popup, system menu в архиве 3 примера: example1_vars.scx варианты вывода API-меню (Ведьмак, там есть пример с иконками 32х32) example2_bind.scx вызов API-меню по BindEvent() example3_real.scx пример Popup API на Popup VFP в архиве также версия 1.62.053 для интересующихся, в сети её не нашёл. Там в Readme_ODMenu.txt ограничения автора по использованию. ![]() |
Re: снова о popup menu | |
---|---|
Vedmak Сообщений: 6086 Откуда: CiTY Дата регистрации: 30.10.2003 |
Спасибо!
------------------ Говорить стоит лишь для тех, кто слушает. ![]() |
Re: снова о popup menu | |
---|---|
Каратаев Автор Сообщений: 4061 Откуда: Алматы Дата регистрации: 04.12.2001 |
Интересно получилось...
------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
© 2000-2025 Fox Club  |