Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB-книга.DOC
Скачиваний:
2
Добавлен:
09.11.2019
Размер:
938.5 Кб
Скачать

2.13. Меню пользователя

Важным элементом GUI является стандартное меню пользователя. Visual Basic имеет специальное средство для создания меню пользоваюлеи приложениями - Menu Editor (Проектировщик меню). Это срелс-жо нозволяег построить меню соответственно общим принципам рассмо1ренного событпиного управления для форм и элементов управления. Меню пользоваге-ля создается выстраиванием элементов меню в соответствии с необходимой их иерархией с помощью Проектировщика меню.

Для вызова проектировщика меню нужно вызвать команду Menu Editor... из меню Tools или щелкнуть кнопку Menu Editor на панели инструментов Главного меню. При этом появится окно Menu Editor . элемешы которою имеюг следующее назначение:

  • Caption примеияегся для ввода названии элементов списка меню, используемых в диадою (например, Фаил, Edit и т.н.):

для создания разделительной черш (разделяет функциональные группы пунктов меню) вместо имени вводтся символ “-“;

  • Name иснользуегся для ввода имен элементов списка меню, используемых при написании нро1раммы (аналогично свойству Name для форм и элементов управления);

  • Index - индекс элемеша списка диало1а в массиве (при использовании массива элемента списка диалога);

  • Shortcut - раскрывающийся список комбинаций клавиш, из которого можно выбрагь комбинацию “горячих” клавиш эле-менюв списка меню;

  • Windows List - флажок, при установке которого меню содержит список (л крытых окон в многооконном приложении (MDI-приложения):

  • HelpConiextID - индекс для поиска в HelpFile;

  • Checked - флажок, при установке когорого помечается пункт выбранною меню;

  • Enabled - флажок, при установке которого пункт меню доступен;

  • Visible - флажок, при усгановке которого пункт меню виден;

  • кнопки изменения уровня пунктов меню;

 

  • кнопки изменения позиции пунктов меню на одном и том же уровне:

  • Кнопки Next, Insert. Delete обеспечивают переход к следующему пункгу меню, вставку и удаление пункта.

Рассмотрим использование проектировщика меню на примере разработки простого редактора, который обеспечивает ввод и редактирование строк символов, запись выделенного фрагмента в буфер и всгавку из буфера. Доступ к буферу обмена можно получить через объект Clipboard, для которого определены следующие методы:

  • SetText записывает копию выделенного текста в буфер обмена;

  • GetText () возвращает копию текстового содержимого буфера обмена;

  • SetData записывает копию выделенного рисунка в буфер обмена;

  • Get Data () возвращает содержимое (рисунок) буфера обмена;

  • GetFormat () определяет, является ли содержимое буфера обмена текстом или рисунком;

  • Clear очищает содержимое буфера обмена.

Разместим на форме (имя - Formi, Caption - Редактор) многострочное текстовое окно (имя - txlEdilBox), размеры которого совпадают с размером формы, для ввода и редактирования текста. Меню редактора включает раскрывающиеся меню: Файл (Новый, Открыть..., Сохранить, Сохранить как.... Выход), Правка (Вырезать, Копировать, Вставить), Справка (О программе). В скобках указаны пункты соответствующих раскрывающихся меню. Это меню создается с использованием Menu Editor.

Аналогично имени mnuEditCopy образуются имена остальных пунктов меню, которые используются для записи программы (nmuEditCut, mnuEditPaste, mnuFileExit, mnuHelpAbout, mnuFileNew, mnuFileOpen, mnuFileSave, mnuFileSaveAs, mnu File Exit}.

Тексты процедур обработки событий следующие:

Sub Form_Resize ()

txtEditBox.Height = ScaleHeight txtEditBox.Width = ScaleWidth

End Sub

Sub mnuEditCopy_Click ()

Clipboard.Clear 'очистить буфер

Clipboard.SetText txtEditBox.SeiText

'поместить 'выделенный текст в буфер End Sub

Sub mnuEditCut_Click ()

Clipboard.Clear 'очистить буфер Clipboard.SetText txtEditBox.SeiText

'поместить 'выделенный текст в буфер txtEditBox.SeiText = “”

'удаление выделенного

'текста End Sub

Sub mnuEditPaste_Click ()

txtEditBox.SeiText = Clipboard.GetText() End Sub

Sub mnuFileExit_Click ()

If MsgBox(“Выход?”,1+32,”Подтвердить”)=lThen End

End Sub

Sub mnuHelpAbout_Click ()

MsgBox “Мой редактор на Visual Basic”,64,”О программе” • End Sub

Sub Form_Unload (Cancel As Integer)

Cancel = 1

mnuFileExit_Click End Sub

Процедура Form_Resiy (обработка события изменения размера формы) обеспечивает автоматическое изменение размеров текстового окна при изменении размеров формы.

Процедура mnuEditCopy_Click (обработка события щелчка мыши по пункту меню “Копировать”) обеспечивает запись выделенного текста в буфер. Используются рассмотренные выше методы для объекта Clipboard и методы для текстового окна (операторы Clipboard. Clear и Clipboard.SetText txtEditBox. SeiText). Во втором операторе txtEditBox. SeiText присваивается выделенный текст.

Процедура mnuEditCut_Click (обработка события щелчка мыши по пункту меню “Вырезать”) обеспечивает перед удалением сохранение выделенного текста в буфере.

Процедура mnuEditPaste_Click (обработка события щелчка мыши по пункту меню “Вставить”) обеспечивает вставку текста из буфера (в данном случае отсутствие при вставке выделения означает вставку в позицию курсора).

Процедура mniiFileExit_Click (обработка события щелчка мыши по пункту меню “Выход”) обеспечивает выход из редактора. Оператор End обеспечивает корректный выход из приложения (закрывает файлы и освобождает память). В процедуре используется функция MsgBox для вывода окна сообщения. Синтаксис ее применения следующий:

MsgBox сообщение [, тип окна] [, заголовок окна]

где

сообщение - текст сообщения;

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

Значение типа

Описание

0

Выводить только кнопку OK

|

Выводить кнопки OK и Cancel

2

Выводить кнопки Abort, Retry, Ignore

3

Выводить кнопки Yes, No, Cancel

4

Выводить кнопки Yes, No

5

Выводить кнопки Retry, Cancel

16

Выводить пиктограмму “Стоп”

32

Выводить пиктограмму “?”

48

Выводить пиктограмму “!”

64

Выводить пиктограмму информации

0

Кнопка по умолчанию - первая

256

Кнопка по умолчанию - вторая

512

Кнопка по умолчанию - третья

0

Программное ведущее диалоговое окно

4096

Системное ведущее диалоговое окно

Первая группа значений (0-5) описывает номер и тип кнопок, отображаемых в диалоговом окне; вторая группа (16, 32, 48, 64) описывает стиль пиктограммы (иконки); третья группа (0, 256, 512) определяет кнопки по умолчанию; четвертая группа (0, 4096) определяет выводимые окна сообщения (0 - окно ввода для окончания работы приложения, 4096 - окно ввода для окончания работы системы).

В качестве значения аргумента может указываться сумма значений типа по одному из каждой группы. Например, в операторе

MsgBox “Удалить ?”, 52

значение аргумента 52 является суммой 48 и 4 (48 - вывод пиктограммы с восклицательным знаком, 4 - кнопки “Yes” и “No”). Функция MsgBox возвращает следующие значения:

Константа

 

 

 

 

vbOK

1

ОК

 

2

Cancel

vbAbort

3

Abort

vbRetry

4

Retry

vblgnore

5

Ignore

vbYes

6

Yes

vbNo

7

No

Эти значения можно использовать для обработки результата работы пользователя с окном MsgBox.

Процедура mnuHelpAbout_Click (обработка события щелчка мыши по пункту меню “О программе”) обеспечивает вывод окна сообщения.

Процедура Form_Unload (Cancel As Integer) (обработка события щелчка мыши по кнопке “Закрыть” раскрывающегося стандартного меню формы) обеспечивает выход с подтверждением. Закрытие формы не обеспечивает корректного завершения приложения. В этом случае присвоение Cancel =1 предотвращает закрытие формы и обеспечивает корректный выход через процедуру mnuFileExit_Click.

Разработанная программа имеет меню пользователя и обеспечивает функции удаления, вставки и копирования при редактировании и выдачу сообщения о программе .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]