Целью урока является знакомство с тем, как осуществляется в Visual c++ работа с файлами, рассматриваются принципы работы с объектом
OpenFileDialog
.
Объект Visual c++ OpenFileDialog для работы с файлами
Разработайте приложение, которое выводит на экран выбранный графический файл
Целью урока является знакомство с тем, как осуществляется в Visual c++ работа с файлами, рассматриваются принципы работы с объектом OpenFileDialog
.
Инструментарий:
объект | свойство name |
---|---|
форма | |
контейнер для изображения (PictureBox) | pct |
кнопка (button) | btn |
диалоговое окно (OpenFileDialog) | file1 |
- Создайте новый проект и расположите элементы управления PictureBox (pct) и Button (btn) на новой форме, как показано на рисунке. Добавьте также элемент управления OpenFileDialog (в свитке Диалоговые окна). Это скрытый элемент, не отображается в дизайне формы. Для свойства name элемента задайте имя file1.
- Предположим, необходимо открывать только изображения формата jpg. В таком случае, необходимо задать фильтр. Сделать это следует при загрузке формы, т.е. нужно запрограммировать событие Load для формы:
this->file1->Filter="(*.jpg)|*.jpg"; |
До прямого слэша указывается, как будет отображаться фильтр в окне, а после – сама маска фильтра.
- Теперь осталось вывести изображение в PictureBox (pct). Для этого запрограммируем событие click для кнопки:
String ^fname;// объявление строковой переменной file1->ShowDialog();//открываем диалоговое окно fname=file1->FileName;//используем переменную для хранения имени выбранного файла pct->Image=Image::FromFile(fname);//загружаем файл в элемент PictureBox |
Здесь мы опустили все обращения к this->, это допускается в visual c++.
- Протестируйте результат.
Дополнительное задание. Добавьте на форму текстовое окно для вывода полного имени графического файла.
Самостоятельное задание: Добавьте на форму объект SaveFileDialog – диалоговое окно для сохранения файла и кнопку Сохранить. Самостоятельно изучите работу с объектом.
Вопросы для самоконтроля:
- Назовите основное назначение элемента управления в Visual c++ OpenFileDialog.
- Какое свойство элемента управления OpenFileDialog используется для открытия файлов конкретного формата?
- Каково назначение элемента управления PictureBox?
- Когда генерируется событие Load для формы?