Alex Mals » 20.02.2006 (Пн) 22:44
Стандартный вариант решения проблемы:
см MSDN Jan 2004 (у меня такая счас, например, хотя и в 99 уже булО)
"Creating an Internet Explorer-style Menu Bar"
1. Меню на кулбаре - есть ToolBarWindow32 - то бишь Тулбар с кнопками.
2. Стандартный Тулбар на Кулбар запихать с одноуровневыми меню - почему нет? Однако функциональность ограничена, как отсутствием вложенных меню (это можно поправить, но это отдельный геморрой), так и необходимостью проработать навигацию.
3. Навигация по меню - здесь две стороны, мышиная и клавная.
Начинаем с сабклассинга, затем навешиваем WH_MSGFILTER хук и получив "полный контроль", вручную начинаем обрабатывать все, что поймаем.
4. Реализовав предыдущие шаги, приступаем к дальнейшему творчеству (это неизбежно), сначала OWNERDRAW меню, а там и NC_PAINT тени.
Пример на Срр в 99 MSDNе был. Пример на VbAccelerator - авторский перевод именно той идеи, хотя и очень творческий . Пара примеров (опять же на Срр) есть и на CodeProject-e. Далее в сети найдется и еще кое-что.
Можно написать и свой вариант. Даже такой непрофессионал, как я, совладал. Более того - полезно в высшей степени, многие тайные уголки "любимой ОС" станут понятны, близки и... ненавидимы.
Желаю и Вам успехов и приятного времяпровождения.