Чтобы превратить
инструментальную панель в строку меню:
Создайте одноуровневую инструментальную панель
при помощи включения флажка
TBSTYLE_FLAT с другими флажками стиля окна. Стиль
TBSTYLE_FLAT включает также и оперативное
слежение за курсором мыши. С этим стилем, строка меню
очень напоминает стандартное меню до тех пор, пока пользователь не активизирует кнопку. Затем, кнопка приобретает вид,
словно выступает из инструментальной панели и
утапливается, когда по ней щелкают мышью, точно так же как и
стандартная кнопка. Поскольку включается
оперативное слежение за курсором, все, что нужно
для того, чтобы активизировать кнопку - это
разместить курсор над кнопкой. Если курсор
переместиться на другую кнопку,
то она будет активизирована,
а старая кнопка дезактивирована.
Создайте в стиле списка кнопки при помощи
включения флажка TBSTYLE_LIST с другими флажками
стиля окна. Этот стиль создает более тонкую кнопку, которая больше походит
на стандартный пункт меню верхнего уровня.
Сделайте кнопки только с текстом,
устанавливая член iBitmapа структуры кнопки TBBUTTON
в значение I_IMAGENONE,
а в члене
структуры iString текст кнопки.
Дайте каждой кнопке стиль BTNS_DROPDOWN. Когда
происходит щелчок по кнопке, орган управления
инструментальной панели отправляет вашему приложению уведомление
TBN_DROPDOWN, чтобы заставить его
показать на экране меню кнопки.
Реализуйте обработчик TBN_DROPDOWN, чтобы показать на экране
раскрывающееся меню (drop-down menu)
кнопки, когда по ней происходит щелчок.
Раскрывающееся меню - это тип всплывающего меню.
Оно создается при помощи функции
TrackPopupMenu, с его левым верхним углом выровненным
по левому нижнему углу кнопки.
Обеспечьте навигацию при помощи
клавиатуры, так, чтобы строка меню была полностью доступна без мыши.
Обеспечьте оперативное слежение за меню. Наравне со
стандартными меню, как только пункты меню верхнего уровня показались
на экране, перемещение курсора на другой пункт верхнего уровня автоматически
показывает на экране его меню и удаляет меню предыдущего пункта. Орган
управления инструментальной панели будет оперативно отслеживать курсор и
изменять изображение кнопки;
он действительно автоматически покажет на
экране новое меню. Ваше приложение должно делать
это явно.
Большинство этих пунктов являются
пунктами прямой реализации и обсуждаются
в другом месте. См. статью Создание
Инструментальной панели в стиле Internet Explorer, органы управления
Инструментальная панель, или
органы управления Дополнительной инструментальной панели
типаRebar для общего понимания того, как использовать
органы управления дополнительной инструментальной панели типа Rebar и
инструментальные панели. См. главу Меню, где обсуждается
то, как обрабатывать всплывающие меню. Конечные два элемента, навигация
при помощи клавиатуры и оперативное слежение
за меню, обсуждаются в
ходе рассмотрения этого документа.