Страница: 1 |
Страница: 1 |
Вопрос: Тайна меню
Добавлено: 30.10.04 20:44
Автор вопроса: shareman
Вот задача:
Есть некая форма, с неким меню. Какое оно, сколько у него элементов и т.п. - неизвестно. Есть процедура, получающая в качестве параметра элемент меню:
Спрашивается - как, имея только этот элемент, узнать манипулятор его меню, его ID и другие подробности?
У него в свойствах обычная дребедень, а Parent - просто форма.
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 30.10.04 21:07
Надо передавать в процедуру не меню, а хэндл формы, далее с пом. АПИ GetMenu() & GetSubMenu смотреть все менюхи...
ЗЫ
Вообще если очень так надо, то создавай менюю на АПИ и работай с ним на нем же...
Номер ответа: 2
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #2
Добавлено: 30.10.04 21:18
Да! Меню на АПи - рулит! Туда можно и картинки всунуть, и без глюков!
Номер ответа: 3
Автор ответа:
shareman
Вопросов: 11
Ответов: 37
Профиль | | #3
Добавлено: 30.10.04 21:26
Я, наверное, неточно объяснил - все это
я знаю, нужно по элементу меню узнать то, что вернула бы GetSubMenu, т.е. манипулятор того меню, к которому принадлежит данный, конкретный элемент. Если я буду все перебирать - как мне определить, что это именно тот, который мне нужен? Ведь единственное уникальное свойство - Name - есть только у элементов меню, а API на него наплевать. С другой стороны, VB ничего не знает про ID меню, с которым работают API.
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 30.10.04 23:55
Я сам задавался этим вопросом и окромя того решения что написал не знаю... В качестве параметра мне так же не удалось передать менюшку, т.ч. я на все это "забил" и воспользовался тем что нам дарит WIndows, а именно - API... Найдешь другой способ, расскажи
Номер ответа: 5
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #5
Добавлено: 31.10.04 01:42
Может, MENUITEMINFO поможет, в частности его элемент hSubMenu?
Handle to the drop-down menu or submenu associated with the menu item. If the menu item is not an item that opens a drop-down menu or submenu, this member is NULL. Set fMask to MIIM_SUBMENU to use hSubMenu.
Или исходить из того, что меню - окно класса #32768 и искать его парента
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 31.10.04 01:44
Да ч АПИ то найти менюшки и проенумить их это не проблемма, а вот как получить VB'шный Name, это надо в COM документации копаться да на угад тыкать...