Обработка шевронов


Когда пользователь делает щелчок мышью по шеврону, орган управления Инструментальная панель типа Rebar отправляет вашему приложению уведомление RBN_CHEVRONPUSHED. Структура NMREBARCHEVRON, которая передается с уведомлением, содержит в себе идентификатор зоны и структуру RECT с прямоугольником, занятым шевроном. Ваш обработчик должен определить, какие кнопки скрываются, а на всплывающем меню показываются связанные команды.

Нижеследующая процедура обрисовывает в общих чертах, как обработать уведомление RBN_CHEVRONPUSHED:

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

 

Назад в оглавление
На главную страницу

Hosted by uCoz