Программирование на Visual Basic

Графика в visual basic

   Windows - графическая ОС, а значит любой программист "под Windows" должен уметь рисовать(программно конечно).
   Для простейшей графики в Visual Basic (как и в других Basic"ах) используются команды PSet,Line и Circle. Программисты, имевшие дело с другими Basic"ами, спросят: Где Paint , Get, Put? Увы таких команд Visual Basic не понимает, да и существующие реализованы немного по другому.
    Visual Basic использует принципы ООП, а значит все графические операторы - методы, и должны иметь объект-"хозяин". Такими хозяевами, являются Форма(Form), Картинка(PictureBox), и пользовательский OCX(UserControl). У каждого из них реализованы, графические методы и вызывать их следует по всем правилам, например: Picture1.PSet (1,1). К этому добавлю, что при работе с формой или собственным OCX, они подразумеваются как объект по умолчанию, а значит PSet (1,1) поставит точку на форме. Или не поставит. Почему?
   В этом ещё одна особенность Visual Basic. Объект для рисования нужно подготовить. У каждого объекта, который может содержать графику, есть несколько особых свойств, рассмотрим их подробнее.
AutoRedraw = True/False - в общих чертах, - это свойство разрешает/запрещает рисование. Если оно установлено в True, создаётся как-бы слой над загруженной в объект картинкой, на котором собственно и рисуют. Причём операторы не влияют на загруженную картинку.
ScaleMode - Масштаб. По умолчанию - твипы(Twips). Выбор единиц измерения большой, но по-моему, разумно использовать только ещё Поинты(Points) и Пикселы(Pixels).
DrawMode - Тип рисования, а точнее логическая операция, применяемая к существующему изображению.
DrawStyle - Стиль рисования. Вам позволяется выбрать вариант изображения линий: 0-Полностью(Solid), 1-Тире(Dash), 2-Точка(Dash), 3-Тире-точка(Dash-Dot), 4-Тире-Точка-Точка(Dash-Dot-Dot) и 5-Прозрачно(Transparent).По умолчанию Solid
DrawWidth - Размер точки.
ForeColor - Цвет линий и текста по умолчанию.Чёрный по умолчанию
FillColor - Цвет заливки, для замкнутых фигур.Чёрный по умолчанию
FillStyle - Стиль заливки для замкнутых фигур: 0-Полностью(solid), 1-Прозрачный(Transparent), 2-Горизонтальные линии(Horizontal Line), 3-Вертикальные линии(Vertical Line), 4-По диагонали направо сверху(Upward Diagonal), 5-По Диагонали направо снизу(Downward Diagonal), 6-Крест(Cross), 7-Дигональный крест(Diagonal Cross). По умолчанию значение - 1.
Координаты при рисовании отсчитываются из левого верхнего угла.
   Итак объект мы подготовили, теперь рассмотрим методы. Начнём с самого малого - точки.
PSet [Step](X, Y)[,Цвет] - Рисует точку в координатах (X,Y). При использовании Step отсчитывает X и Y, как смещения от координат последней точки Если цвет не указан, используется цвет по умолчанию(ForeColor).
Line(X1,Y1)-[Step](X2,Y2),[Цвет][,Bf/B]- Рисует линию(пустой[B]/закрашенный[Bf] прямоугольник. Для линии координаты задают начальную и конечную точку. Для прямоугольника - координаты левого верхнего и правого нижнего углов соответственно.
Circle (X,Y),Радиус[,Цвет] - Рисует окружность с центром в X, Y, заданным радиусом и цветом( или цветом по умолчанию).
Cls - Очищает экран (не изменяя картинку свойства Picture).
   Основные графические методы мы разобрали. Теперь поговорим об утратах и приобретениях. Как я уже говорил Windows забрала из Basic"а операторы Panit, Get, Put. Но при этом она вернула их объединение.
PaintPicture (SrcPicture, X1, Y1, [Width1], [Height1], [X2], [Y2],[Width2], [Height2], [dwRop]) - Метод копирует изображение из исходного объекта в объект - хозяин, следуя указанным параметрам. Размеры объектов могут быть различны. По сути дела PaintPicture - оболочка для API-функций StretchBlt и BitBlt, так что если хотите моете пользоваться ими.

Кроме этого изменился оператор Print он стал абсолютно графическим. О нём скажу только, что место для вывода текста определяется свойствами объекта-хозяина CurrentX, CurrentY. Управление шрифтом через свойство Font, и его свойства.

Вот в общем-то и всё по графике. Добавлю только, что возможности графики можно расширить через Windows API.
Hosted by uCoz