Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Программа 12. Создание командных кнопок с графическими условными обозначениями




Для создания командных кнопок, подобных кнопкам на панели инструментов, можно использовать средства управления изображением. Действия мышью в Visual Basic отслеживаются с помощью специальных событий, привязанных к объектам формы. Например, событие MouseDown для какого-либо объекта, вызывает соответствующую процедуру обработки при нажатии пользователем кнопки мыши на этом объекте формы. Если написать специальную процедуру обработки события MouseDown (такую, как lmage1_MouseDown), то программа будет предпринимать определенные действия в случае, если указатель мыши находится на объекте, и пользователь нажал кнопку мыши. Создавая графическую кнопку, нужно, чтобы программа изменяла ее вид при щелчке мышью, чтобы кнопка имела "нажатое" состояние, а затем бы выполнялась заданная команда в программе.
Примечание.Помимо события MouseDown, ваши программы могут распознавать и событие MouseUp (генерируемое при отпускании пользователем кнопки мыши) и событие MouseMove (генерируемое при перемещении мыши).

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

Для успешного написания программы необходимо создать 6 картинок кнопки: жирный, курсив, подчеркнутый в отжатом и нажатом состояниях. Их можно нарисовать в Paint или раздобыть любым другим доступным вам путем. Единственное условие – кнопка должна быть маленькой и фона вокруг кнопки быть не должно. Сохраним эти картинки на диске C:\Documents с именами:кнопка жирный шрифт-1.BMP, кнопка курсив – 2.BMP, кнопка подчеркивание – 3.BMP. Надо изменить цвет фона кнопок на любой другой, и получится еще 3 картинки для изображения кнопок в нажатом состоянии. Назвать их 11.BMP, 22.BMP, 33.BMP соответственно.

Отжатое состояние является обычным состоянием кнопки в покое. Нажатое состояние соответствует выбору кнопки (щелчку на ней мышью). Недействующее состояние соответствует недоступности данной кнопки для использования в программе. Некоторые графические командные кнопки никогда не бывают в этом состоянии. Можно изменять состояние кнопки с помощью прерывания MouseDown.

В программе Visual Basic состояния кнопки отображаются с помощью смены рисунков для объекта типа изображение. Процедура обработки события MouseDown, ассоциированная с данным объектом, обрабатывает смену состояния. Корректно написанная процедура обработки прерывания должна считать текущее состояние кнопки (нажата, отжата или не действует) изменить состояние на соответствующее действию, а затем выполнить соответствующее действие (например, изменить начертание текста на жирное). Рисунки для кнопки могут быть загружены в процессе выполнения программы с помощью функции LoadPicture, или определены для формы с помощью операции присвоения. Некоторые программисты для ускорения работы программы помещают в форму все три состояния кнопки.

В следующем упражнении предлагается создать программу, в которой используются три графические командные кнопки: Bold (Полужирный), Italic (Курсив) и Underline (Подчеркивание) для форматирования текста формы. Для отображения кнопок формы программа использует шесть созданных вами значков, а также три процедуры обработки прерывания MouseDown для обновления кнопок и форматирования текста. На рис. 16 приведена создаваемая форма 1.


Рис.16.

В меню File (Файл) щелкнуть на команде New Project (Создать проект), затем – на кнопке ОК, чтобы создать новый стандартный проект. Изменить размеры формы, чтобы она примерно соответствовала диалоговому окну среднего размера. Щелкнуть на кнопке управления Label (Поле метки), затем создать длинное поле метки вдоль верхнего края формы управления. Используйте средство управления Image (Изображение) для создания трех небольших рамок изображения в центре формы под полем метки. Эти рамки будут содержать кнопки Bold (Полужирный), Italic (Курсив) и Underline (Подчеркнутый).

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

Создайте в середине формы большое поле метки, в котором будет содержаться образец текста. Текст в этом поле будем форматировать с помощью кнопок, изменяя свойства FontBold (Полужирный шрифт), Font Italic (Курсивный шрифт) и FontUnderline (Подчеркнутый) в процедуре обработки события MouseDown.

Теперь надо установить свойства для объектов. Сделаем шесть рисунков состояний кнопок невидимыми, затем изменим формат текста в полях меток. Далее запишем состояния кнопок в специальное свойство изображения с именем Tag (Тег). Тег – это свойство (признак), которое можно использовать для описания объектов. Чаще всего тег используется для хранения имени объекта, но в данном случае в нем будет храниться состояние кнопки «Up» («Отжата») или «Down» («Нажата»). Свойство Tag (Тег) позволяет хранить запись, идентифицирующую объект. Установите следующие свойства для объектов:

Объект Свойство Установленное значение
Label1 Caption (Надпись) "Нажмите эти кнопки для форматирования вашего текста"

Label2

Caption (Надпись) "Доброе утро! Удачного дня!"
Font (Шрифт) Times New Roman, 28-point
Forml Caption (Надпись) "Graphical Buttons"

Image1

Picture (Рисунок) C:\Documents\1.bmp
Visible(Видимость) False(Ложь)

Image2

Picture (Рисунок) C:\Documents\2.bmp
Visible(Видимость) False(Ложь)

Image3

Picture (Рисунок) C:\Documents\3.bmp
Visible(Видимость) False(Ложь)

Image4

Picture (Рисунок) C:\Documents\11.bmp
Visible(Видимость) False(Ложь)

Image5

Picture (Рисунок) C:\Documents\22.bmp
Visible(Видимость) False(Ложь)

Image6

Picture (Рисунок) C:\Documents\33.bmp
Visible(Видимость) False(Ложь)

Image7

Picture (Рисунок) C:\Documents\1.bmp
Tag(Тег) "Up"

Image8

Picture (Рисунок) C:\Documents\2.bmp
Tag(Тег) "Up"

Image9

Picture (Рисунок) C:\Documents\3.bmp
Tag(Тег) "Up"

По завершении форма должна выглядеть так, как показано на рис.16. Теперь введем текст программы для трех процедур обработки события MouseDown. Дважды щелкните на объекте Image1 (кнопка Bold над образцом текста) формы. В окне Code появится процедура Image1_Click. На этот раз надо написать программу для обработки события MouseDown, а не для Click. Чтобы открыть нужную процедуру обработки события для объекта, щелкните на соответствующем элементе в открывающемся списке Procedure (Процедура). Откройте список Procedure (Процедура) в окне Code. В списке отображены события, которые связаны с объектом типа изображение.

Щелкните на событии MouseDown в списке. В процедуре MouseDown имеются четыре переменные, которые можно использовать в вашей программе.

В окне Code будет отображена процедура lmage1_MouseDown процедура получает четыре значения относительно ее MouseDown: нажатие кнопки мыши, использование | Alt |, [Ctrl | или | Shift|; координата х (горизонтальная) указателя мыши на экране; координата у (вертикальная) указателя мыши на экране. Эти значения возвращаются в процедуру обработки события и присваиваются переменным, использованным вами в тексте процедуры.

Введите следующие операторы в процедуру lmage1_MouseDown:

If lmage7.Tag = "Up" Then
Image7.Picture = lmage4.Picture
Label2.FontBold = True
Lmage7.Tag = "Down"
Else
Image7.Picture = lmage1.Picture
Label2.FontBold = False
Image7.Tag = "Up"
End If

Свойство FontBold (Полужирный шрифт) управляет полужирным начертанием символов.

Эта несложная структура с условием If обрабатывает два состояния кнопки Bold (Полужирный). Если была установлена в отжатое состояние ("Up"), процедура заменяет рис. 1.bmp на рис. 11.bmp, изменяет начертание текста на полужирное и устанавливает тег для из изображения в значение "Down". Если кнопка является нажатой, процедура заменяет рис. 11.bmp на рис. 1.bmp отменяет полужирное начертание шрифта и устанавливает значение "Up". Вне зависимости от текущего состояния кнопки структура с условием изменяет его на противоположное.

Откройте список Object (Объект) в окне Code, затем выберите объект Image2. Откройте список Procedure (Процедура), затем выберите MouseDown. Будет отображена процедура lmage2_MouseDown. Введите следующие операторы:

If lmage8.Tag = "Up" Then
Lmage8.Picture = Image5. Picture
Label2.Fontltalic = True
Lmage8.Tag = "Down"
Else
Image8. Picture = Image2.Picture
Label2.Fontltalic = False
Lmage8.Tag = "Up"
End If

Свойство Tag (Тег) используется для установки текущего состояния кнопки. Эта структура с условием управляет кнопкой Italic (Курсив). Текст почти идентичен процедуре lmage1_MouseDown. Единственное отличие состоит в разных именах для изображений и использовании свойства Fontltalic (Курсивный шрифт) вместо FontBold (Полужирный шрифт).

Откройте список Object (Объект), затем выберите объект Image3. Откройте список Procedure (Процедура), затем выберите MouseDown. Когда появится процедура lmage3_MouseDown, введите следующие операторы:

If Image9.Tag = "Up" Then
Lmage9.Picture = lmage6.Picture
Label2.FontUnderline = True
Image9.Tag = "Down"
Else
Image9.Picture = lmage3.Picture
Label2.FontUnderline = False
Image9.Tag = "Up"
End If

Свойство Picture (Рисунок) используется для переключения состояния кнопок. Эта структура с условием управляет кнопкой Underline (Подчеркнутый). Она почти идентична первым двум процедурам. Программа закончена. Запустим программу и проверим действие кнопок.

1. Щелкните на кнопке Start (Пуск) на панели инструментов. Программа будет запущена (рис. 17). В форме появятся инструкции, кнопки инструментов и образец текста. Вы можете использовать три кнопки в любом порядке любое число раз.


Рис. 17.

2. Щелкните на кнопке Italic (Курсив). При нажатии кнопки мыши кнопка Italic (Курсив) перейдет в "нажатое" состояние, а текст образца будет отображен курсивом. Щелкните на кнопке Underline (Подчеркнутый), текст образца будет отображен с подчеркиванием. Если щелкнуть еще раз на кнопках Italic (Курсив) и Underline (Подчеркнутый), то они перейдут в "отжатое" состояние, а начертание текста вновь станет обычным.

3. Поэкспериментируйте с кнопкой Bold (Полужирный), чтобы оценить ее действие. Попробуйте различные кнопки в различных сочетаниях.

4. Закончив проверку действия кнопок, щелкните на кнопке End (Конец) на панели инструментов. Программа будет завершена.










Последнее изменение этой страницы: 2018-06-01; просмотров: 253.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...