Когда пользователь делает
щелчок мышью по шеврону, орган управления Инструментальная панель типа Rebar
отправляет вашему приложению уведомление
RBN_CHEVRONPUSHED. Структура
NMREBARCHEVRON,
которая передается с уведомлением, содержит в себе идентификатор зоны и
структуру
RECT
с прямоугольником, занятым шевроном. Ваш обработчик должен определить, какие
кнопки скрываются, а на всплывающем меню показываются связанные команды.
Нижеследующая процедура обрисовывает в общих чертах, как обработать
уведомление RBN_CHEVRONPUSHED:
Извлеките текущий ограничивающий прямоугольник для выбранной полосы
отправляя сообщение RB_GETRECT органу управления Инструментальная
панель типа Rebar.
Извлеките общее количество кнопок отправляя сообщение TB_BUTTONCOUNT органу управления
зоны инструментальной панели.
Начиная с крайней левой кнопки, извлеките ограничивающий
прямоугольник кнопки, отправляя органу управления инструментальной
панели сообщение TB_GETITEMRECT.
Передайте прямоугольники зоны и кнопки в функцию IntersectRect.
Эта функция возвратит структуру RECT, которая соответствует
видимой части кнопок.
Передайте прямоугольник кнопки и прямоугольник для видимой части
кнопок в функцию EqualRect.
Если EqualRect возвращает значение ИСТИНА (TRUE), то вся
кнопка видима. Повторите шаги 3-5 для следующей кнопки на
инструментальной панели. Если EqualRect возвращается ЛОЖЬ (FALSE),
то кнопка, по крайней мере, будет частично скрыта, а все оставшиеся кнопки
будут полностью скрыты. Продолжите следующий шаг.
Создайте всплывающее меню с пунктами для каждой из скрытых кнопок.
Покажите на экране всплывающее меню при помощи функции TrackPopupMenu. Используйте прямоугольник шеврона, который передает
уведомление RBN_CHEVRONPUSHED, чтобы установить меню. Меню должно
быть непосредственно ниже шеврона, выровненное по левому краю.