Создание меню средствами Visual Basic

Материал из УссуриВики
Перейти к: навигация, поиск
Автор Коростина Юлия

Общие сведения

Любая программа, содержащая более пары примитивных функций, только выигрывает, если в нее добавить удобное меню. Основная цель программиста – максимально упростить работу с функциями программы. Эту цель помогает достичь правильно организованная система меню. Меню – наиболее заметная часть приложения. Хорошие меню существенно упрощают использование программы.

К программам, использующим стандартные возможности Windows', предъявляются дополнительные требования: они должны соответствовать стандартам, принятым для Windows-приложений. Цель Microsoft' – сделать основные функции Windows стандартными для графического интерфейса пользователя (Graphical User Interface – GUI). Примечание Если нет веских причин нарушать традиции использования меню, лучше их соблюсти. Подобное имеет смысл, если функции программы существенно отличаются от общепринятых. Новое расположение команд даст пользователю знать, что какие-то функции реализованы нестандартно.

Стандартные соглашения о меню Windows

Отдельные элементы и соглашения типовых меню также стандартизованы и перечислены в таблице 1.

Таблица 1 – Стандартные соглашения о меню в Windows

Элемент Соглашение
Заголовок Используется одно или два кратких характерных слова
Организация Пункты меню должны быть логически сгруппированы, к каждой функции должен быть предоставлен доступ с минимальным числом уровней
Клавиши доступа Каждому пункту меню должна быть присвоена клавиша доступа (подчеркнутая буква в названии меню или подменю), которая позволит выбрать пункт меню с помощью клавиатуры. Клавиша должна быть уникальной, обычно это первая буква заголовка
Быстрые клавиши Любому часто используемому пункту меню необходимо назначить быструю клавишу или комбинации клавиш, которые также должны быть уникальными
Флажок проверки Пункты меню, которые просто включают и отключают одну опцию программы, должны иметь флажок проверки прямо в меню
Скобки За каждым пунктом меню, открывающим диалоговое окно, должно следовать многоточие (…)


Элемент Menu Editor – Редактор меню

Cоздание меню

В Visual Basic имеется встроенный редактор меню «Menu Editor» (смотрите рисунок 1), который позволяет легко создавать строки меню и редактировать уже имеющиеся. Меню можно создавать в виде строки в верхней части формы с раскрывающимися подменю или же в виде всплывающего меню, к которому пользователь получает доступ, щелкнув кнопкой мыши.

Меню – это элемент управления со своим набором свойств и одним событием «Click». Наиболее часто используемые свойства объекта «Menu» представлены в таблице 2.

Таблица 2 – Часто используемые свойства объекта «Menu»

Свойство Тип Описание
Caption String Строка символов, представляющая название пункта меню
Checked Boolean Помещает флажок перед названием соответствующего пункта меню
Enabled Boolean Определяет доступность элемента меню. Если равно False, то строка будет отображена затененной и недоступной для щелчка мышью
Name String Имя пункта меню. Доступно только во время разработки приложения
Shortcut Нет Комбинация клавиш, позволяющая вызвать процедуру, связанную с этим пунктом меню. Его значение устанавливается в диалоговом окне «Menu Editor». Доступно во время разработки
WindowsList Boolean Создает в главном меню MDI-формы список окон, открытых в данной MDI-форме. Доступно только во время разработки


С объектом «Menu» связано лишь одно событие – «Click», генерирующееся при щелчке левой клавишей мыши по соответствующему пункту меню. Синтаксис процедуры обработки такого события следующий: Private Sub MenuName_Click()

  • Private – область видимости процедуры в приложении;
  • MenuName – имя конкретного пункта меню (свойство «Name»), для которого программируется событие;
  • Click – название события.

Примечание: При использовании быстрых клавиш и клавиш доступа также будет запускаться процедура обработки события «Click».

Свойство «Caption» – это строка, которая будет отображена в названии пункта меню во время работы приложения. Если это свойство оставить пустым, то пункт будет представлен пустой строкой. Не забывайте включать знак амперсанта (&) в название пункта меню. Когда соответствующий пункт появится на экране, стоящий за ним символ будет подчеркнут (&File → File). Подчеркнутый символ становится клавишей доступа, и пункт меню можно выбрать, нажав комбинацию этой клавиши с клавишей <Alt>. Например, в приведенном примере - <Alt + F>.


Использование быстрых клавиш

Использование быстрых клавиш – еще один способ оперативного доступа к функциям меню. Комбинации клавиш назначаются, по мере необходимости, для каждого пункта меню в раскрывающемся списке «Shortcur» диалогового окна «Menu Editor».

Примечание: Смысл использования быстрых клавиш и клавиш доступа в том, что пользователь может вызвать необходимую функцию в любой момент времени, не проходя все стадии выбора пунктов меню.

Для создания вложенных меню, т.е. при выборе определенного меню открывается дополнительное подменю, пользуются специальными кнопками изменяющими степень вложенности отдельных пунктов меню. Принцип построения таких меню аналогичен построению списков: каждый пункт меню является частью вложенного подменю ближайшего сверху пункта, имеющего степень вложенности на единицу меньше чем у этого пункта.

Таким образом, система пунктов меню, имеющих разную степень вложенности, представленных в окне (Menu Editor), реально отображается в приложении в виде вложенных панелей подменю.

Как было сказано ранее, существуют два вида меню: строка и всплывающее меню. Любое меню можно заставить всплыть, воспользовавшись методом «PopupMenu»:

PopupMenu MenuName

  • PopupMenu – название самого метода.
  • MenuName – имя существующего объекта меню (пункт меню, за которым находится вложенное в него подменю).


Программирование всплывающего меню

Иногда бывает полезно дополнительно разделить пункты одного подменю на группы. Для этого пользуются разделителямиспециальной линией, которая делит панель меню на части. Чтобы добавить его в нужное место, надо внести между двумя разделяемыми строками дополнительный пункт, но его свойство «Caption» необходимо установить равным «-» (дефис). Реально такой пункт будет выглядеть как разделительная полоса, и он будет недоступен для щелчка мышью. На рисунке 3 приведен пример программирования разделителя в «Menu Editor» и то, как он выглядит в приложении.

Программирование элемента разделителя

Примечание: Нельзя использовать разделители на нулевом уровне иерархии меню (т.е. в строке меню). Необходимо спуститься хотя бы на один уровень.

Для отображения выбора некоторого параметра или состояния используется свойство «Checked». Значение этого свойства можно установить как во время выполнения программы, так и во время разработки. Во время разработки это делается установкой флажка Checked в диалоговом окне «Menu Editor». Во время выполнения программы это делается следующим синтаксисом: NameNenu.Checked = True

  • NameNenu – имя пункта меню у которого устанавливается флажок;
  • Checked – имя свойства.

Если это свойство установить равным «False», то флажок у этого пункта меню исчезнет. При этом свойство «Checked» не является исключительным. При необходимости это свойство может иметь значение «True» сразу для нескольких пунктов меню.

Список литературы

1. VB6.0. Основные навыки – глава 11

2. Visual Basic с нуля