Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual C++(.Net) / Visual C++(.Net).doc
Скачиваний:
167
Добавлен:
09.05.2015
Размер:
1.18 Mб
Скачать

Работа с графикой Использование графических файлов

Нередко возникает потребность украсить приложение иллюстративным материалом либо с помощью графики добавить наглядности. Это могут быть графическая заставка (логотип приложения), фотографии авторов, набор рисунков или клипартов, графики и диаграммы и пр.

В 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и далее станет работать как этот же метод, указанный без параметров.