
- •Часть 2. Сборник рецептов по визуальному программированию Введение в объектно-ориентированное программирование
- •Создание проекта в VisualStudio
- •Файлы проекта
- •Сведения об объекте
- •Общие свойства всех объектов
- •Класс Form
- •Помещение компонента в форму и прочие действия с дизайнером форм
- •Свойства форм
- •События формы
- •Методы формы
- •Компоненты ввода и отображения текстовой информации Компонент Label
- •Некоторые свойства компонента Label
- •Компонент TextBox
- •Методы TextBox
- •Компонент RichTextBox
- •Ввод числовых значений в компонент TextBox
- •Проверка, введены ли значения
- •Компонент ListBox
- •Компонент ComboBox
- •Ввод данных из файла
- •Компонент MaskedTextBox
- •Кнопки, индикаторы и управляющие элементы Компонент Button
- •Компонент Panel
- •Компоненты RadioButtonиCheckBox
- •Компонент GroupBox
- •Пример. Комплектация автомобиля
- •Работа с меню Главное меню
- •Контекстное меню
- •Создание текстового редактора
- •Системные диалоги
- •Компонент OpenFileDialog
- •Компонент SaveFileDialog
- •Диалог выбора шрифта
- •Диалог выбора цвета
- •Компонент PrintDialog
- •Диалоговые окна в текстовом редакторе
- •Расширенные символы Unicode
- •Работа с графикой Использование графических файлов
- •Создание фотоальбома
- •Методы для рисования на форме и прочих компонентах
- •Работа с таймером
- •Работа с датой и временем
- •Добавление новых форм к проекту
- •Многостраничные панели
- •Способы задания страниц
- •Методы TabControl
Работа с графикой Использование графических файлов
Нередко возникает потребность украсить приложение иллюстративным материалом либо с помощью графики добавить наглядности. Это могут быть графическая заставка (логотип приложения), фотографии авторов, набор рисунков или клипартов, графики и диаграммы и пр.
В VC++ возможно вставить изображение практически в любой компонент в виде фонового рисунка (это упоминалось выше).
Однако для работы с графическими файлами существует и специальный компонент: PictureBox, который располагается в спискеCommonControls. Через этот компонент в форму выводится графическое изображение.
Какое изображение необходимо вывести, указывается в свойстве Image. Если нажать кнопку с многоточием в поле этого свойства, то откроется диалоговое окно для выбора объекта в форматахbmp(битовые матрицы),jpg,gif,png(сжатые файлы),ico(пиктограммы),emf,wmf(метафайлов). Можно также загрузить изображение в форму, воспользовавшись свойствомImageLocationи методамиLoad() иLoadAsync().
Битовые матрицыотображают цвет каждого пикселя в изображении. При этом, информация хранится так, что любой компьютер может отобразить картинку с разрешающей способностью и количеством цветов, соответствующим его конфигурации.
Пиктограммы– маленькие битовые матрицы. Они повсеместно используются для обозначения значков приложений, в быстрых кнопках, в пунктах меню, в различных списках. Способ хранения изображений в пиктограммах схож с хранением информации в битовых матрицах. Пиктограмму невозможно масштабировать.
Метафайлыхранят не последовательность битов, из которых состоит изображение, а информацию о способе создания картинки. Они хранят последовательности команд рисования, которые могут быть повторены при воссоздании изображения. Это делает такие файлы более компактными, нежели битовые матрицы.
Компонент PictureBoxсодержит в себе свойства, определяющие, как выводить изображение внутри границ самого этого объекта (в формеPictureBoxотображается в виде пустого квадрата).
Рассмотрим некоторые свойствакомпонента.
Image– задает изображение, загружаемое в компонент (в поле этого свойства имеется кнопка с многоточием, с помощью которой открывается диалоговое окно для загрузки изображения). Можно загружать и сохранять изображение также и в режиме исполнения приложения с помощью методов классаPictureBox.
SizeMode– дает возможность регулирования изображения в отведенном пространстве компонентаPictureBox. Это свойство имеет ряд значений, которые можно выбирать из выпадающего списка, открывающегося кнопкой в поле этого свойства:
Normal– размещает изображение в левом верхнем углу пространстваPictureBox, а не вмещающаяся часть изображения отрезается;
StretchImage– изображение принимает размеры и форму компонента, если компонент изменит размеры, то изменит размеры и изображение;
AutoSize– заставляет компонент изменить свои размеры и принять размеры самого изображения;
CenterImage– помещает изображение в центр пространства компонента, не меняя его размера (т.е. если размер изображения больше размера пространства компонента, то изображение обрезается);
Zoom– это свойство обеспечивает соблюдение пропорций изображения при подгонке его к размерам пространства компонента.
ErrorImage– здесь можно задать изображение, которое станет выводиться вместо запрашиваемого, если последнее не удается загрузить из-за возникающих ошибок или по причине отмены загрузки.
InitialImage– с помощью этого свойства можно задать вывод «успокаивающего» изображения, которое выводится в компонент на то время, когда основное изображение загружается.
Среди методовкомпонентаPictureBoxнаиболее часто используемым являетсяLoad(), который позволяет загружать изображение из файла, путь к которому указан в свойствеImageLocation. Если в этом свойстве не задавать пути, а указать его в переменной типаString(например,String ^url), то с помощью методаLoad(url)в форму также можно загрузить изображение. В этом случае методLoad()сам назначит свойствуImageLocationзначение переменнойurlи далее станет работать как этот же метод, указанный без параметров.