Окно с рисунком (PictureBox)

Как следует из самого названия, элемент PictureBox предназначен для отображения рисунков и других графических объектов. Этот элемент управления также является элементом контейнером, поэтому его можно использовать для объединения других элементов.

Как и события рамки, события элемента PictureBox обычно не обрабатываются, хотя при необходимости это можно сделать.

Положение PictureBox в форме задается свойством Align, которое определяет будет ли PictureBox закрепляться у одного из краев формы или сохранит положение, заданное разработчиком. Если элемент управления закрепляется у одного из краев формы, то его размер (ширина или высота) всегда устанавливается в соответствии с размером формы.

Свойство AutoSize определяет, будут ли автоматически изменяться размеры элемента управления для отображения рисунков различного размера.

Самое важное свойство PictureBox - Picture, которое содержит отображаемый графический объект. Это может быть растровое изображение (*.ВМР), пиктограмма (*.IСО), метафайл (*.WMF) или расширенный метафайл (*.EMF), также GIF и JPEG файлы.

При выполнении приложения для изменения свойства используется функция LoadPicture:

Picturel.Picture = LoadPicture(”C:\WINDOWS \AUTOS.BMP”)

Сохранить изображение можно при помощи функции SavePicture:

SavePicture Picturel.Picture, ”BUILD.BMP”

Методы PictureBox позволяют нарисовать точку, линию и окружность, также вывести текст (метод Print).

Способность элемента PictureBox отображать рисунки различных форматов можно использовать для преобразования пиктограммы (*.IСО) в растровое изображение (*.ВМР). Для этого нужно загрузить пиктограмму и сохранить ее с расширением BMP. Однако растровое изображение преобразовать в пиктограмму нельзя.

Изображение (Image)

Элемент управления Image также создан для отображения рисунков. Но в отличие от PictureBox, он не является элементом контейнером. Он не позволяет рисовать и не допускает группирования объектов. Однако Image использует меньше ресурсов и перерисовывает быстрее, чем PictureBox. Поэтому для отображения рисунков Image может быть лучшим вариантом.

Так как главное назначение Image — отображение рисунков, его события обычно не анализируются.

Главным свойством Image также является Picture. С его помощью можно определить рисунок, отображаемый элементом управления, на стадии проектирования либо при выполнении программы. Свойство Stretch определяет, как отображается рисунок. Если значение свойства Stretch равно True, то размеры рисунка изменяются до размеров элемента управления Image, в противном случае элемент управления изменяется до размера рисунка.

Активизация элементов управления

Горячие клавиши

Горячие клавиши (hot key) можно назначить почти всем элементам управления, имеющим свойство Caption. Их можно определять в Caption путем добавления знака амперсэнда (&) перед соответствующей буквой. Несмотря на то, что текстовое поле не имеет свойства Caption, для него также можно определить горячую клавишу. Для этого нужно добавить элемент управления Label перед текстовым окном и определить для него горячую клавишу. Затем следует присвоить свойству Tablndex элемента управления Label значение на единицу меньше, чем для такого же свойства текстового поля.

Свойство Tablndex

С помощью клавиши Tab в Windows можно передавать фокус от одного элемента другому. Свойство Tablndex элемента управления устанавливает последовательность перехода при нажатии клавиши Tab. Значение индекса 0 присваивается свойству Tablndex элемента управления, который помещается в форму первым. Visual Basic автоматически увеличивает это свойство. Это значит, что каждый новый элемент управления формы получает значение свойства Tablndex на единицу больше, чем у предыдущего элемента управления. Если вас не устраивает предложенная последовательность перехода, ее можно изменить с помощью свойства Tablndex. При этом Visual Basic автоматически изменит значения индексов остальных элементов управления. Если установить значение свойства TabStop элемента управления равным False,т о передать ему фокус посредством клавиши Tab будет невозможно.

Формы

Каждая форма сохраняется в проекте в виде отдельного файла. Этот файл содержит описание рабочей среды и код, относящийся к элементам управления и форме. Формы сохраняются как обычные текстовые файлы

Свойства формы

Кроме стандартных свойств, таких как Caption, BackColor, Font и т.д., формы имеют и свои собственные свойства, присущие только им. Эти свойства рассматриваются ниже.

Для просмотра свойств формы в окне свойств нужно либо щелкнуть в пустом месте формы (но не в строке заголовка), либо выбрать форму из списка объектов в окне свойств.

Свойство BorderStyle

Стандартное окно имеет рамку (border). С ее помощью пользователь может изменять размеры окна. Для этого в системном меню имеется соответствующая команда. Вид рамки можно изменить с помощью свойства BorderStyle, которое может принимать одно из следующих значений:

· 0 = vbBSNone - Окно без рамки. Размер окна изменяться не может. Нет строки заголовка. Окно не может перемещаться. Минимизация и максимизация окна также невозможны.

· 1 = vbFixedSingle - Фиксированная рамка. Есть заголовок, кнопки минимизации и максимизации, но размер окна изменяться не может.

· 2 = vbSizable - Значение по умолчанию. Возможны все изменения размера окна.

· 3 = vbFixedDialog - Окно окаймляется толстой рамкой. Изменения размера невозможны. Нет кнопок минимизации и максимизации. Минимизировать и максимизировать можно только из системного меню.

· 4 = vbFixedToolWindow - Поведение такое же, как vbFixedSingle, но в Windows 95 строка заголовка более узкая и имеет меньший шрифт. Эта форма не отображается на панели задач Windows 95.

· 5 = vbSizableToolWindow - Поведение такое же, как vbSizeable, но строка заголовка более узкая и имеет меньший шрифт. Эта форма также не отображается на панели задач Windows 95.

С помощью рамки можно изменять не только внешний вид окна, но и его размеры. Это важно, так. как содержимое окна не подгоняется автоматически к его измененному размеру. Это может привести к тому, что элемент управления после изменения размера будет находиться вне видимой области и поэтому “забудется”. Не включится также и полоса прокрутки.

Свойство ControlBox

Свойство ControlBox определяет, отображается ли системное меню, с помощью которого пользователь может выйти из программы (Alt+F4). Если системное меню удаляется, пользователю следует обеспечить другой способ выхода из программы.

Свойство MaxButton

Кнопкой максимизации пользователь может увеличить окно до размера экрана. Ее наличие определяется свойством MaxButton формы. Если присвоить этому свойству значение False, то соответствующая кнопка будет отсутствовать, а команда Maximize (Развернуть) удалится из системного меню.

Свойство MinButton

Если для свойства MinButton задать значение False, то кнопка затемняется, из системного меню удаляется строка Minimize (Свернуть).

События формы

Имена процедур обработки событий формы всегда имеют формат Form_событие безотносительно к наименованию формы.

Событие Load

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

Событие Unload

Событие Unload вызывается, если форма удаляется из памяти. С помощью параметра Cancel можно отменить удаление формы с экрана.

Событие QueryUnload

Более практичным, чем Unload, является событие QueryUnload. Наряду с параметром Cancel в процедуру обработки события передается и параметр UnloadMode, указывающий причину возникновения события:

· 0 = vbFormControlMenu - Пользователь закрыл приложение посредством Alt+F4, кнопки Close окна или одноименной команды системного меню

· 1 = vbFormCode - В коде выполняется команда Unload

· 2 = vbAppWindows - Завершение сеанса Windows

· 3 = vbAppTaskManager - Выход из приложения с помощью менеджера задач

· 4 = vbFormMDIForm - Дочерняя форма MDI закрыта, так как закрыта вышестоящая форма MDI

Событие Resize

Проблем ,возникающая при изменении размеров формы, уже рассматривалась. Решить ее помогает событие Resize, которое вызывается при любом изменении размеров формы. При этом следует учитывать два аспекта. Во-первых, во время обработки события Load форма еще не видна. Во-вторых, при загрузке и отображении формы всегда возникает и событие Resize, так как при запуске размеры формы изменяются от нулевых до заданных в свойствах формы. При создании процедур для.связанных событий типа Activate, GotFocus, Paint и Resize убедитесь, что их действия не находятся в противоречии друг с другом и что они не вызывают рекурсивных событий.

Меню

Большинство приложений Windows обладает меню. Вы также можете оснастить им свое приложение, поскольку меню это тоже элемент управления.

Прежде чем проектировать меню, следует ознакомиться с некоторыми правилами его создания.

Обычно меню состоят из нескольких уровней. Верхний уровень - это строка меню, в которой находятся элементы главного меню. Они обозначают главные группы команд, например File или Edit. Лучше придерживаться общепринятой структуры меню - это облегчает пользователю изучение программы и работу с ней.

При выборе элемента меню первого уровня автоматически открывается меню второго уровня. Элементы второго уровня “выпадают” в виде списка. В большинстве приложений меню заканчивается на этом уровне. Но можно создать и больше уровней - максимум шесть.

Правила составления меню

Для обеспечения простого и удобного обращения с меню следует учитывать следующие правила:

· обычно элементы строки меню позволяют открывать меню следующего уровня. Если же требуется, чтобы после выбора команды меню выполнялся код, то текст элемента должен заканчиваться восклицательным знаком, например Info!;

· ограничивайтесь двумя или тремя уровнями - так пользователю легче находить элементы меню;

· элементы меню, выполнение которых вызывает появление диалогового окна, отмечаются тремя точками после имени, например Open… .

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

Создание меню в Visual Basic осуществляется с помощью специального инструмента создания меню - редактора меню. Окно редактора меню открывается одним из трех способов: путем нажатия комбинации клавиш Ctrl+E, нажатием соответствующей кнопки на панели инструментов или после выбора команды меню Tools \ Menu Editor… .

Меню строится иерархически.

Проще всего создавать меню при помощи встроенного редактора меню Visual Basic. Для этого сначала в поле Caption окна редактора вводится текст, который будет виден в строке меню. Для быстрого открытия меню или вызова команды используются горячие клавиши. Для определения горячих клавиш достаточно в поле Caption перед соответствующей буквой пост вить амперсэнд (&). Например ,для быстрого открытия меню File в поле Caption диалогового окна редактора меню необходимо ввести ”&File”. Если же в качестве горячих клавиш нужно определить Alt+i, то в поле Caption следует ввести ”F&ile”.

Второй шаг - назначение имени элементу меню (так же, как любому элементу управления). Visual Basic не задает имя по умолчанию, как для других элементов управления.

Правила назначения имени

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

File mnuFile

File\Qpen... mnuFOpen

File\Send\Fax mnuFSFax

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

Поле Shortcut позволяет определить комбинации клавиш для быстрого доступа к отдельным элементам меню.

Поля WtadowList и Index будут рассмотрены позже.

Наши рекомендации