Тема 6. Организация и средства человеко-машинного интерфейса

advertisement
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Тема 6. Организация и средства человеко-машинного
интерфейса
Цель
Изучить
принципы
построения
графического
интерфейса
пользователя, соответствующего современным эргономическим
требованиям.
Задачи
1. Познакомиться с пространством имен GDI+, которое содержит
набор типов, предназначенных для вывода графики, работы со
шрифтами, перьям, кистью, для работы с двумерной графикой,
с системными шрифтами, для вывода изображений на
принтер.
2. Рассмотреть наиболее важные типы пространства имен
System.Drawing. и System.Drawing.Drawing2D.
3. Познакомиться с экономическими и правовыми аспектами
защиты информационных технологий.
Оглавление
Обзор пространств имен GDI+
Пространство имен System.Drawing
Вывод графического изображения
Работа с цветом и шрифтами
Обзор пространства имен System.Drawing.Drawing2D
Вывод изображений
Понятие об экономических и правовых аспектах
информационных технологий
Выводы
Вопросы для самопроверки
Литература
Обзор пространств имен GDI+
Термин GDI расшифровывается как Graphics Device Interface
(интерфейс графических устройств). Этим термином обозначается
подсистема Windows, предназначенная для вывода графических
изображений (а Windows вся основана на использовании графики) на
экран и на принтер. GDI+ – это новый набор программных
интерфейсов, используемый в рамках платформы .NET.
В
.NET
предусмотрено
множество
пространств
имен,
предназначенных для вывода двумерных графических изображений.
Помимо ожидаемых стандартных типов (например, для работы с
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
цветом, со шрифтами, с пером и кистью, с изображениями) в этих
пространствах имен предусмотрены типы для выполнения достаточно
изощренных операций, таких как геометрические преобразования,
сглаживания неровностей, подготовка палитры, поддержка вывода на
принтер и многие другие. Перечень наиболее важных пространств
имен для работы с графическими изображениями представлен в
табл.1.
Таблица 1.
Наиболее важные пространства имен GDI+
Пространство имен
System.Drawing
Специализация
Это – важнейшее пространство имен
GDI+, которое содержит основные типы
для вывода графики (для работы со
шрифтами, перьями, кистью), а также
исключительно важный тип Graphics
System.Drawing.Drawing2D В
этом
пространстве
имен
предусмотрены типы для выполнения
более сложных операций с двумерной
графикой
(градиентная
заливка,
геометрические преобразования)
System.Drawing.Imaging
Здесь
определены
типы,
которые
позволяют работать с графическими
изображениями
(менять
палитру,
извлекать метаданные изображения,
выполнять операции с метафайлами)
System.Drawing.Printing
Это пространство имен определяет типы
для вывода графики на принтер и
взаимодействия с принтером в целом
System.DrawingText
Это пространство имен позволяет
работать с системными шрифтами,
например, как будет показано на
примерах ниже, класс FontCollection
позволяет
получать
список
всех
установленных в системе шрифтов.
Чтобы обеспечить возможность работы с графикой необходимо в
описание приложения добавить ссылку на соответствующие
пространства имен, например такие: Imports System.Drawing,
System.Drawing.Drawing2D.
Пространство имен System.Drawing
Подавляющее большинство типов для работы с графикой, которые
нам потребуются, находятся именно в пространстве имен
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
System.Drawing. Познакомимся с некоторыми, наиболее важными
классами этого пространства имен.
Класс BitMap инкапсулирует файл изображения и определяет набор
методов для выполнения различных операций с этим изображением.
Объекты классов Brush, Brushes, SolidBrush, SystemBrushes,
TextureBrush используются для заполнения пространства внутри
геометрических фигур (например, прямоугольников, эллипсов или
многоугольников). Класс Brush является абстрактным классом,
базовым для всех остальных перечисленных классов. Производные
классы наследуют свойства и методы класса Brush и имеют
собственные,
реализующие
различную
функциональность.
Дополнительные типы Brush определены в пространстве имен
System.Drawing.Drawing2D.
Классы Color, SystemColors, ColorTranslator определяют наборы
цветов для графических изображений. Структура Color определяет
набор статических полей, которые могут быть использованы для
настройки цвета. Тип ColorTranslator позволяет создавать новый цвет
(объект Color) на основе внешнего представления этого цвета (цвета
Win32, типа OLE_COLOR, констант цвета в HTML и так далее).
Тип Font инкапсулирует характеристики шрифта (имя, размер,
начертание и так далее). Тип FontFamilly представляет набор
шрифтов, которые относятся к одному семейству, но имеют некоторые
небольшие отличия.
Важнейшим классом в пространстве имен System.Drawing является
класс Graphics, который определяет набор методов для вывода
текста, изображений и геометрических фигур.
Классы Icon и SystemIcons предназначены для работы с
пользовательскими
и
системными
значками
(миниатюрными
изображениями). Класс Image является абстрактным классом, который
обеспечивает возможности для классов BitMap, Icon и Cursor. Класс
ImageAnimator позволяет производить показ изображений (типов,
производных от Image) через указанные вами интервалы времени.
Класс Pen (перо) – это класс, при помощи которого можно рисовать
прямые и кривые линии. В классе Pen определен набор статических
свойств, при помощи которых можно получить объект Pen с
заданными свойствами (например, с установленным цветом).
Структуры Point, PointF обеспечивают работу с координатами точки.
Класс Point работает со значениями типа Integer, а PointF – со
значениями типа Double. Также как структуры Size и SizeF
обеспечивают работу с размерами (высотой и шириной),
соответственно для типов Integer и Double.
Классы Rectangle и RectangleF предназначены для работы с
прямоугольными областями, соответственно Integer и Double.
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Класс StringFormat используется для форматирования текста
(определения выравнивания, междустрочного интервала и так далее).
Класс Region определяет область, занятую геометрической фигурой.
Для значительной части классов используются перечисления, которые
также определены в пространстве имен System.Drawing. Например,
перечисление StringAligment определяет выравнивание текстовой
строки, а перечисление SrtingTrimming определяет, как будут
обрезаться строки, которые не помещаются полностью в отведенной
области.
Многие методы, определенные в классе Graphics, требуют, чтобы мы
указали положение или область для вывода графического объекта.
Например, при использовании метода DrawString() необходимо
указать местонахождение выводимой текстовой строки на элементе
управления. Метод DrawString() многократно перегружен, но один из
наиболее часто используемых вариантов этого метода требует
указания координат (x,y) или прямоугольной области для вывода.
Другим часто используемым методам необходимо передавать
размеры (высоту и ширину) прямоугольной области, в которую будет
производиться вывод, или, если область вывода будет не
прямоугольной, задать эту область другими способами.
Для передачи методам подобной информации в пространстве имен
System.Drawing предусмотрены типы Point, Rectangle, Region и Size.
Point используется для передачи координат (x,y). Класс Rectangle
определяет координаты двух точек, которые будут восприняты как
верхний левый и нижний правый углы прямоугольника. Тип Size
определяет размер прямоугольной области в каком-либо измерении
(то есть используется для указания высоты и ширины). Тип Region
необходим для работы с непрямоугольными областями.
Внутренние переменные, используемые для хранения данных в Point,
Rectangle, Size являются целочисленными (тип Integer). Если же у вас
возникла необходимость указывать координаты или размеры при
помощи значений с плавающей запятой (тип Double), то в вашем
распоряжении типы PointF, RectangleF, SizeF.
Вывод графического изображения
Для создания графического изображения необходимо получить
(инициировать создание) объект Graphics. Это основной тип
пространства имен System.Drawing, который имеет набор методов для
вывода текста, изображения или геометрических фигур. Так как вывод
любого изображения выполняется на поверхности какого-либо
элемента управления, например, форме или объекте PictureBox,
которые являются наследниками объекта Control, то можно
переопределить метод Paint, наследуемый формой или PictureBox от
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
класса Control. Другими словами, мы можем заместить этот метод и
извлечь объект Graphics из передаваемых этому методу параметров:
В обработчике события Paint всегда передается параметр
PaintEventArgs,
который
ссылается
на
объект
Graphics,
представляющий поверхность рисования элемента управления или
формы. Использование этого параметра для создания контекста
графического устройства выполняется следующим образом:
Private Sub Form4_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Dim g As Graphics = e.Graphics
или
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim g As Graphics = e.Graphics
После того, как создан экземпляр класса Graphics, связанный
контекстом с конкретным элементом управления, для которого будет
выполняться вывод, необходимо создать экземпляры стандартных
классов
System.Drawing.Brush,
System.Drawing.Colors,
System.Drawing.Design, System.Drawing.Drawing2D, представляющих
собой стандартный инструментарий: перья, шрифты, цвет и так далее.
Экземпляры созданных инструментов используются методами
графического объекта для вывода изображения.
Очень часто бывает, что вывод графического объекта необходимо
произвести не в стандартных ситуациях, когда возникает событие
Paint, а в ответ на другие события. Например, необходимо нарисовать
маленький кружок в том месте формы, где был сделан щелчок
мышью. Первая наша задача, как всегда при выводе изображения, –
получить объект Graphics, а затем выполнить с этим объектом
необходимые манипуляции. Объект Graphics можно получит при
помощи метода CreateGraphics():
Private Sub Form2_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
Dim g As Graphics = Me.CreateGraphics()
g.FillEllipse(параметры для рисования кружков))
Легко убедиться на практике, что при любой перерисовке формы
(возникновении события Paint) все кружки, выведенные на форме
после щелчков мышью, исчезнут. Это не удивительно. Поскольку, как
мы видим, вывод графических объектов (кружков) в нашем случае
происходит только в результате щелчка мышью, но не при выводе
формы на экран. В реальных приложениях эту проблему решают с
помощью сохранения информации о графических объектах (в нашем
случае, кружках) во внутренней коллекции, например при помощи
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
класса ArrayList. При выполнении события Paint эту коллекцию заново
выводят в форму (перерисовывают).
Класс Graphics, являясь основным классом для вывода графики,
обладает большим количеством свойств и методов. В классе
определены методы для вывода изображений и геометрических
фигур: DrawArc(), DrawBezier(), DrawCurve(), DrawEllipse(), DrawIcon(),
DrawLine(), DrawPie(), DrawRectangle и многие другие. В классе
Graphics также определен набор свойств, при помощи которых можно
настраивать параметры графических объектов: ClipBounds, Transform,
PageScale и ряд других.
Перед тем, как познакомиться с тонкостями вывода графических
объектов, нам необходимо разобраться еще с одним вопросом –
системой координат, используемой в GDI+. Как и в других графических
технологиях, мы можем выбирать систему координат из доступного
множества систем координат. Система, принятая по умолчанию,
использует в качестве единицы измерения пикселы, а в качестве
исходной точки – верхний левый угол. Координата Х определяет
смещение вправо, а координата Y – смещение вниз. Например, если
мы, производим вывод прямоугольника, используя систему координат
по умолчанию, следующим образом:
e.Graphics.DrawRectangle(New Pen(Color.Red, 5), 10, 10, 100, 100)), то
получится прямоугольник размером 90*90 пикселов, отстоящий от
верхнего левого края формы на 10 пикселов вниз и вправо.
Скорее всего, в реальном приложении вы будете использовать
именно систему координат по умолчанию. Однако вам ничто не
мешает в случае необходимости воспользоваться и альтернативной
системой. Как уже говорилось, единица измерения по умолчанию –
это пиксел. Однако при помощи свойства PageUnit объекта Graphics
мы можем выбрать другую единицу измерения, которая будет
применяться к этому объекту. Для свойства PageUnit используются
значения из перечисления GraphicsUnit (Display – 1/75 часть дюйма,
Document – 1/300 часть дюйма, Inch – дюйм, Millimeter – миллиметр,
Pixel – пиксел, Point – 1/72 часть дюйма).
Можно также применять альтернативные точки отсчета. Как мы
помним, по умолчанию, точкой отсчета для системы координат
является верхний левый угол клиентской площади формы. В
подавляющем большинстве случаев это нас вполне устроит. Однако
бывают ситуации, когда удобнее, чтобы точка отсчета системы
координат была расположена в другом месте. В GDI+ для изменения
точки
отсчета
системы
координат
используется
метод
TranslateTransform(), определенный в классе Graphics. Например,
установить точку отсчета в положение 100, 100 относительно системы
координат по умолчанию можно следующим образом:
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Private Sub Form2_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
e.Graphics.DrawString("text", New Font("Pop", 25), New
SolidBrush(Color.Red), 10, 10)
e.Graphics.DrawRectangle(New Pen(Color.Red, 5), 10, 10, 100, 100)
'Настраиваем единицы измерения
e.Graphics.PageUnit = GraphicsUnit.Point
'Настраиваем новую точку отсчета для системы координат
e.Graphics.TranslateTransform(100, 100)
'Код для вывода прямоугольника остается прежним
e.Graphics.DrawRectangle(New Pen(Color.Red, 5), 10, 10, 100, 100)
End Sub
Работа с цветом и шрифтами
При использовании многих методов вывода, которые определены в
классе Graphics, мы должны указать используемый цвет. Как правило,
для этого используется структура Color. Эта структура позволяет
задать цвет в системе ARGB (aplha-red-green-blue, альфа-канал
(отвечающий за прозрачность) – красный – зеленый – синий). Чаще
всего для выбора цвета используются статические свойства этой
структуры, которые возвращают объект типа Color. Существуют и
другие способы, при помощи которых мы можем создать объект Color.
В пространстве имен System.Windows.Forms предусмотрен заранее
готовый класс ColorDialog, который обеспечивает пользователей
приложения диалоговым окном для выбора цвета. Необходимо
переместить объект ColorDialog из панели инструментов в форму и
использовать его свойства при написании программы:
If ColorDialog1.ShowDialog = DialogResult.OK Then
e.Graphics.DrawRectangle(New Pen(ColorDialog1.Color, 5), 1, 1, 10, 10).
Главный класс, который используется для работы со шрифтами в
GDI+, – это класс System.Drawing.Font. Объекты этого класса
представляют конкретные шрифты, установленные на компьютере. В
этом классе предусмотрено множество конструкторов, но два
наиболее часто используемых варианта:
'Создаем объект Font, указывая имя шрифта и его размер
e.Graphics.DrawString("text", New Font("Times", 25), New
SolidBrush(Color.Red), 12, 12)
'Создаем объект Font, указывая имя, размер и стили из перечисления
FontStyle. Как вы видите, можно задать несколько стилей
одновременно
e.Graphics.DrawString("text", New Font("Arial", 50, FontStyle.Bold And
FontStyle.Underline), New SolidBrush(Color.Red), 14, 14)
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Для вывода диалогового окна, в котором пользователь может выбрать
нужный ему шрифт, существует класс FontDialog, реализованный в
виде не визуального элемента управления. Чтобы воспользоваться
этим классом следует переместить элемент управления FontDialog в
форму и использовать его свойства в коде программы.
If FontDialog1.ShowDialog = DialogResult.OK Then
e.Graphics.DrawString("text", New Font(FontDialog1.Font, 25), New
SolidBrush(Color.Red), 12, 12)
Обзор пространства имен System.Drawing.Drawing2D
Мы уже использовали в наших примерах Pen (перо) и Brush (кисть).
Самые простые варианты этих типов определены в пространстве
System.Drawing. Однако есть гораздо более интересные перья и кисти,
и для их использования (так же как и множества других возможностей)
нам
необходимо
обратиться
к
пространству
имен
System.Drawing.Drawing2D. Это дополнительное пространство имен
GDI+ (со значительно меньшим количеством типов, чем
System.Drawing)
обеспечивает
возможность
устанавливать
специальные «наконечники» для перьев (pen caps), создавать кисти,
которые рисуют не сплошной полосой, а текстурами, производить
различные векторные манипуляции с графическими объектами.
Dim g As Graphics = e.Graphics
'Создаем большое перо синего цвета
Dim bluePen As New Pen(Color.Blue, 20)
'проводим линию при помощи пера
g.DrawLine(bluePen, 10, 130, 110, 130)
'используя перечисление DashStyle заменим у пера стиль
bluePen.DashStyle = DashStyle.DashDotDot
g.DrawLine(bluePen, 120, 150, 310, 330)
Если мы предпочитаем более изысканный стиль окончаний линий, то
в нашем распоряжении перечисление LineCap, имеющееся в
пространстве имен System.drawing.Drawing2D.
'Настраиваем "наконечник" пера
bluePen.StartCap = LineCap.ArrowAnchor
bluePen.EndCap = LineCap.Round
'Проводим линию при помощи пера
g.DrawLine(bluePen, 100, 130, 410, 430)
Следующий инструмент GDI+ – это кисть (brush). Кисти
предназначены для «закрашивания» пространства между линиями.
Мы можем определить для кисти цвет, текстуру или даже
изображение. Сам класс Brush является абстрактным, и создавать
объекты этого класса мы не можем. Вместо этого в нашем
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
распоряжении классы, производные от Brush, такие как SolidBrush,
HatchBrush, LinearGradientBrush и так далее.
Dim g As Graphics = e.Graphics
'Создаем кисть с текстурой
Dim br As New TextureBrush(New Bitmap("c:\Windows\Лес.bmp"))
g.DrawString("TEXT", New Font("Arial", 15, FontStyle.Bold), br, 10, 10)
Вывод изображений
Мы познакомились с применением главных типов GDI+ шрифтов,
перьев и кистей. Нам осталось рассмотреть последний из основных
типов: тип System.Drawing.Image, который используется для вывода
изображения. Класс Image определяет множество свойств и методов,
которые можно использовать для настройки параметров выводимого
изображения. К примеру, при помощи свойств Width, Height и Size
можно получить или установить размеры изображения. Кроме того, в
пространстве имен System.Drawing.Image определено множество
типов для проведения сложных преобразований изображений.
FromFile() – этот статический метод, предназначенный для создания
объекта Image из файла. FromStream() – еще один статический метод,
позволяющий создать объект Image. Используя в качестве источника
поток данных. Save() – метод, позволяющий сохранить изображение в
файл. Класс Image является абстрактным классом, следовательно,
создавать объекты этого класса нельзя. Обычно объявленные
переменные Image присваиваются объектам класса BitMap.
Вывод полученных изображений производится очень просто,
поскольку в классе Graphics предусмотрен специальный метод,
который так и называется – DrawImage(). Этот метод многократно
перегружен, поэтому в нашем распоряжении множество вариантов
того, как поместить изображение в нужное нам место на форме.
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Private Sub Form2_Paint(ByVal sender As
Object, ByVal e As
System.Windows.Forms.PaintEventArgs)
Handles MyBase.Paint
Dim g As Graphics = e.Graphics
Dim imgA, imgB, imgC As Image
imgA = New Bitmap("c:\Windows\Лес.bmp")
imgB = New
Bitmap("c:\Windows\Треугольники.bmp")
imgC = New
Bitmap("c:\Windows\Циновка.bmp")
g.DrawImage(imgA, 10, 10, 90, 90)
g.DrawImage(imgB, 10, 110, 90, 90)
g.DrawImage(imgC, 10, 210, 90, 90)
End Sub
Понятие об экономических и правовых аспектах
информационных технологий
Программные продукты – важные объекты защиты по ряду причин. Вопервых, они являются продуктом интеллектуального труда
специалистов высокой квалификации, зачастую групп в несколько
десятков или даже сотен человек. Во-вторых, процесс проектирования
этих продуктов связан с потреблением значительных материальных и
трудовых ресурсов, основан на использовании дорогостоящего
оборудовании и наукоемких технологий. В-третьих, восстановление
нарушенного программного обеспечения требует значительных
трудозатрат, а простой вычислительного оборудования чреват
негативными результатами для организации или физических лиц.
Защита программных продуктов преследует следующие цели:
 ограничить
несанкционированный
доступ
отдельных
категорий пользователей к работе с ними;
 исключить преднамеренную порчу программ с целью
нарушения нормального хода обработки данных;
 исключить преднамеренную модификацию программы с
целью порчи репутации производителя программной
продукции;
 исключить несанкционированное тиражирование программ;
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
 исключить несанкционированное изучение содержания,
структуры и механизма работы программы.
Программные
продукты
должны
защищаться
от
несанкционированного воздействия различных объектов и субъектов:
человека, технических средств, специализированных программ,
окружающей среды.
Человек может воздействовать на программный продукт путем
хищения или физического уничтожения документации на программу
или самого машинного носителя, нарушения работоспособности
программных средств. Технические средства (аппаратура) путем
подключения к компьютеру или передающей среде могут произвести
считывание, расшифровку программ, а также их физическое
разрушение. С помощью специализированных программ могут быть
произведено вирусное заражение программного продукта, его
несанкционированное
копирование,
недозволенное
изучение.
Наконец, окружающая среда в силу аномальных явлений (повышение
электромагнитного излучения, пожар, наводнение) может привести к
физическому разрушению программного продукта.
Самым простым и доступным способом защиты программных
продуктов является ограничение доступа к нему путем:
 Парольной защиты программ при их запуске;
 Использование ключевой дискеты;
 Использование
специального
технического
устройства
(электронного ключа), подключаемого к порту ввода-вывода
компьютера.
Во избежание несанкционированного копирования программ
специальные программные средства защиты должны:
 Идентифицировать среду, из которой запускается программа;
 Вести учет количества выполненных санкционированных
инсталляций или копирования;
 Противодействовать (вплоть до саморазрушения) изучению
алгоритмов и программ работы системы.
Эффективными защитными мерами для программных продуктов
являются: нестандартное форматирование запускающей дискеты;
закрепление месторасположения программы на жестком диске;
привязка к электронному ключу, вставляемому в порт ввода-вывода;
привязка к номеру BIOS.
Защита программных продуктов должна обязательно осуществляться
и правовыми методами, в числе которых лицензионные соглашения и
договоры, патентная защита, авторские права, технологическая и
производственна секретность.
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Выводы
Платформа Microsoft .NET Framework включает новую модель
рисования и печати двумерных изображений – GDI+, которая
представлена типами из пространства имен System.Drawing. GDI+ не
является абсолютно новой системой рисования: по сути это только
.NET-оболочка для классических GDI-функций Microsoft Windows API.
Тем не менее, классы GDI+ значительно облегчают рисование
сложных фигур, использование и преобразование координат, а также
управление обработкой рисунков и параметрами их качества. Кроме
того, GDI+ применяется для печати.
Программные продукты и информационные технологии – это
интеллектуальная собственность, которую их разработчики стараются
защищать самыми разнообразными способами: техническими,
программными, юридическими.
1.
2.
3.
4.
5.
1.
2.
3.
4.
Вопросы для самопроверки
Можно ли создать объект класса System.Drawing.Brush и
использовать его свойства и методы для создания графических
изображений?
Какие способы указания координат и размеров графических
фигур вы можете перечислить?
Перечислите
возможные
способы
организации
вывода
изображения на элемент управления или форму?
Как изменить цвет контура изображаемой фигуры? А как
изменить цвет или текстуру заливки замкнутой фигуры?
Можно ли выводить текст, написанный текстурной кистью?
Литература
Макдональд Мэтью. Microsoft Visual Basic.Net: рецепты
программирования. Мастер-класс / Пер. с англ. – М.:
Издательско-торговый дом «Русская Редакция», 2005. – 704 стр.:
ил.
Троелсен Э. C# и платформа .NET. Библиотека программиста —
СПб.: Питер, 2006 — 796 с.: ил.
Объектно-ориентированное
программирование
в
Visual
Basic.NET. Библиотека программиста / Д. Кларк. – СПб.: Питер,
2005. – 352 с.: ил.
Visual Basic.NET: учебный курс/ В.Долженков, М.Мозговой. —
СПб.: Питер, 2005. – 465 с,: ил.
Download