Вывод графического изображения на форму - Программирование графики в Microsoft Visual Basic

Для того чтобы вывести графическое изображение в окне формы необходимо в созданном средствами Visual Studio приложении WindowsApplication вставить в класс формы строку this.

Методы, определенные в классе Graphics, требуют, указания положения или область для вывода графического объекта. Для передачи методам подобной информации в пространстве имен System. Drawing предусмотрены типы Point, Rectangle, Region и Size.

    - Point используется для передачи координат (х, у); - Rectangle определяет координаты двух точек, которые будут восприняты как верхний левый и нижний правый углы прямоугольника; - Тип Size определяет размер прямоугольной области в каком-либо измерении (то есть используется для указания высоты или ширины); - Тип Region необходим для работы с непрямоугольными областями; - Внутренние переменные, используемые для хранения данных в Point, Rectangle и Size, являются целочисленными (то есть относятся к типу int). Если же возникла необходимость указывать координаты или размеры при помощи значений с плавающей запятой (тип float), то можно использовать типы PointF, RectangleF и SizeF [9, с.64];

Таблица 1 - Члены типа Point (PointF)

Член

Назначение

X, У

Эти свойства позволяют получать и устанавливать значения координат х и у

IsEmpty

Это свойство возвращает true, если значения х и у равны нулю

Offset( )

Этот метод позволяет произвести смещение точки относительно исходной позиции

Таблица 2 - Члены классов Rectangle и RectangleF

Член

Назначение

!=, = =

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

Inflate( ), Intersect( ), Union( )

Эти статические методы позволяют увеличивать размеры прямоугольника и создавать новые прямоугольники путем разделения или объединения существующих.

Тор, Left, Bottom, Right,

Эти свойства устанавливают измерения прямоугольника

Height, Width

Эти свойства определяют высоту и ширину прямоугольника

Contains()

Этот метод позволяет определить, попадает ли точка с указанными координатами (или другой прямоугольник) внутрь области, занимаемой прямоугольником

X, Y

Определяют координаты x и у верхнего левого угла прямоугольника

Класс Region

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

Таблица 3 - Члены класса Region

Член

Назначение

Complement()

Дополняет объект Region другими графическими объектами, которые не пересекаются с исходным объектом Region

Exclude()

Исключает область, занимаемую другим графическим объектом, из области объекта Region

Intersect()

Перегружен. Уменьшает область, занимаемую исходным объектом Region, до области наложения друг на друга исходного и указанного пользователем объектов Region

GetBounds()

Возвращает объект класса RectangleF, представляющий прямоугольник, в который точно вписана область, занимаемая объектом Region

IsEmpty(), MakeEmpty()

Позволяют определить, имеет ли область, занимаемая данным объектом Region, нулевой размер, или установить нулевой размер для области Region

IsInfinite(), MakeInfinite()

Позволяют определить, является ли область, занимаемая объектом Region, бесконечной, или установить бесконечный размер для данной области

Translate()

Сдвигает координаты объекта Region на указанную пользователем величину

Union()

Объединяет указанный объект Region с другим графическим объектом

Хог()

Объединяет указанный объект Region с другим графическим объектом, исключая при этом область пересечения этих двух объектов

Вывод графических объектов без события Paint

Бывает так, что вывод графического объекта необходимо произвести не в стандартных ситуациях, то есть не когда возникает событие Paint, а в ответ на другие события. Например, вывести маленький кружок в том месте, где на форме был сделан щелчок мышью. Первое, необходимо получить объект Graphics, а затем выполнить с этим объектом необходимые манипуляции. Объект Graphics можно получить при помощи метода Graphics. FromHwnd(). Обратите внимание, что единственный параметр, передаваемый этому методу, -- это значение свойства Handle. Свойство Handle, определено в классе Control и наследуется всеми классами, производными от Control [9, с.68]..

При любой перерисовке формы все кружки, выведенные на форме после щелчков мышью, исчезнут. Чтобы информация о графических объектах сохранялась и использовалась при перерисовке формы самый простой способ -- создать внутреннюю коллекцию (например, ArrayList) и помещать туда нужные объекты. Затем к этой коллекции будет обращаться метод OnPaint().

Возможности класса Graphics

Наиболее часто используемые методы этого класса представлены в таблице.

Таблица 4 - Некоторые методы класса Graphics

Метод

Назначение

FromHdc(), FromHwnd(), FromImage()

Эти статические методы обеспечивают возможность получения объекта Graphics из элемента управления или изображения

Clear()

Заполняет объект Graphics выбранным пользователем цветом, удаляя его предыдущее содержимое

DrawArc()

Этот метод предназначен для вывода дуги.

DrawEllipse()

Рисует эллипс

DrawLine()

Рисует линию

DrawPie()

Рисует сектор

DrawPolygon( )

Рисует замкнутую произвольную область

DrawRectange()

Рисует прямоугольник

DrawString()

Выводит строку

FillElllpse()

Рисует закрашенный эллипс

FillPie()

Рисует закрашенный сектор

FillPolygon()

Рисует закрашенную криволинейную замкнутую область

FillRectangle()

Рисует закрашенный прямоугольник

Класс Pen

Pen - класс пера, имеющий два основных атрибута: цвет и ширину.

Таблица 5 - Свойства класса Реn

Свойство

Назначение

Color

Определяет цвет создаваемых объектом Реn линий

CustomStartCap, CustomEndCap

Позволяют получить или установить стиль "наконечника" пера, который будет показан в начале линии (StartCap) и в конце линии (EndCap)

DashCap

Позволяет получить или установить стиль "наконечника" для перьев, рисующих пунктирные линии

DashOffset

Устанавливает смещение начала пунктира относительно исходной точки пунктирной линии

DashStyle

Позволяет получить или установить стиль для пунктирных линий, создаваемых при помощи данного объекта Реn

LineJoin

Позволяет получить или установить стиль объединения при пересечении двух линий, выводимых данным объектом Реn

Width

Позволяет получить или установить ширину данного пера

Кроме класса Реn в GDI+ также можно использовать коллекцию заранее определенных перьев (коллекция Pens). При помощи статических свойств коллекции Pens можно мгновенно получить уже готовое перо, без необходимости создавать его вручную. Однако все типы Реn, которые создаются при помощи коллекции Pens, имеют одну и ту же одинаковую ширину, равную 1. Чтобы установить перо для вывода линий определенного стиля необходимо подключить в начале кода using System. Drawing. Drawing2D; затем создавая перо [9,с.79].

Похожие статьи




Вывод графического изображения на форму - Программирование графики в Microsoft Visual Basic

Предыдущая | Следующая