Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Базовый курс. Ч.3. Основы алгоритмизации и про- граммирования в среде Visual C++ 2005.pdf
Скачиваний:
53
Добавлен:
05.02.2023
Размер:
3.81 Mб
Скачать

179

gcnew System::Drawing::Font(«Arial»,16);//тип и размер шрифта

String^ myString= « Р о с с и я «; int x=10, y=10, //начальная точка

L=200, H=40; //ширина флага и высота полосы // задание размера прямоугольника (одной полосы флага)

Rectangle rect = Rectangle(x,y,L,H); //рисуем белую полосу флага

e->Graphics->DrawRectangle(myPen,rect); myBrush->Color=Color::White; e->Graphics->FillRectangle(myBrush, rect);

//рисуем синую полосу флага

rect = Rectangle(x,y+H,L,H); e->Graphics->DrawRectangle(myPen,rect); myBrush->Color=Color::Blue; e->Graphics->FillRectangle(myBrush, rect);

//рисуем красную полосу флага

rect = Rectangle(x,y+2*H,L,H); e->Graphics->DrawRectangle(myPen,rect); myBrush->Color=Color::Red; e->Graphics->FillRectangle(myBrush, rect);

//вывод надписи(сначала красным, потом черным цветом) e->Graphics->DrawString(myString, myFont, myBrush, 50,200);

myBrush->Color=Color::Black; e->Graphics->DrawString(myString, myFont, myBrush,51,201);

}

6.РАБОТА С ТЕКСТОВЫМИ ФАЙЛАМИ.

6.1.Чтение и запись текстового файла

Всреде Visual C++ (Windows Fоrms) имеется возможность обращаться к внешним файлам: отображать информацию из файла на форме, помещать информацию с формы в файл и т..пМы рассмотрим работу с текстовыми файлами в простейшем варианте– с помощью специальных компонентов.

Для работы с файлами будем использовать окна диалога. В Windows Forms имеются специальные элементы управления, орга-

180

низующие диалоги именно для открытия и сохранения файлов: openFileDialog и saveFileDialog.

Пример 6-1. Создать приложение, которое выводит в поле richTextBox, размещенное на форме, содержимое текстового файла,

а также позволяет отредактировать этот текст(в том числе и изменить шрифт) и сохранить в файл. (см. рис. 9.18).

Рис. 9.18

При реализации этого проекта попутно освоим работу по созданию меню на форме и работу с окнами диалога.

Как видим, нам нужно разместить элемент управления richTextBox (куда будет помещаться текст из файла и где его будем редактировать), три кнопки: Открыть (файл), Сохранить (файл), Шрифт (изменить шрифт текста). Разместив эти элементы,

сразу их настроим: сменим надписи на кнопках(свойство Text у каждой кнопки), поле richTextBox растянем на всю оставшуюся часть формы. Отметим, что содержимое этого поля хранится в свойстве Lines, которое имеет вид массива: первая строка в окош-

ке richTextBox может быть получена так:

richTextBox1->Lines[0],

вторая так:

richTextBox1->Lines[1],

181

т.е. обратите внимание, что нумерация строк идет с нуля.

Кроме того, разместим элементы: menuStrip – для организа-

ции меню на форме, openFileDialog, saveFileDialog – для организации диалогов при открытии и сохранении файлов, а также fontDialog – для организации диалога при смене шрифта. Мы эти элементы, как обычно, перетаскиваем на форму, но они будут находиться внизу, под самой формой (см. рис. 6.1). Для окон диалога проведем настройку. Выберем openFileDialog1 на форме и

усвойства Filter установим richTextFile|*.rtf. Аналогично сделаем и

уsaveFileDialog1. В результате в окне диалога будут высвечиваться только файлы указанного типа. Обратим внимание, что

данное окно richTextBox1 предназначено для работы именно с файлами типа rtf.

Далее нужно настроить меню: задать его пункты и подпункты. Для этого щелкнем по значку menuStrip1 и вводим меню вида:

&Файл

&Редактирование

&Открыть

&Шрифт

&Закрыть

&Очистка

Значок «&» здесь помещаем для того, чтобы можно было вызывать соответствующий пункт с помощью клавиши на клавиатуре. В данном случае, пункт «Файл» будет вызываться клавишей «Ф», подпункт «Открыть» клавишей «О» и т.д.

Теперь разработаем события для всех этих пунктов. Дважды щелкаем по подпункту «Открыть» и оформляем событие вида:

private: System::Void открытьToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e) {openFileDialog1->ShowDialog(); richTextBox1->LoadFile(openFileDialog1->FileName);}

Аналогично создадим событие и для пункта «Сохранить» :

private: System::Void сохранитьToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e) {saveFileDialog1->ShowDialog(); richTextBox1->SaveFile(saveFileDialog1->FileName); }

Для подпункта «Шрифт» событие имеет вид:

private: System::Void шрифтToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e) {fontDialog1->ShowDialog(); richTextBox1->Font=fontDialog1->Font; }

182

Для подпункта «Очистить»:

private:System::Void очиститьToolStripMenuItem_Click (System::Object^ sender, System::EventArgs^ e)

{richTextBox1->Clear(); }

Заметим, что на форме имеются кнопки с аналогичными действиями. Поэтому кнопке «Открыть» назначим то же событиеот-

крытьToolStripMenuItem_Click. Напомним, что для этого достаточно выделив эту кнопку, перейти в окошко Properties и переключится на вкладку Events (щелкнуть по значку «молния»),

а там, в строке Click, щелкаем и выбираем нужное событие.

 

Аналогично

кнопке «Сохранить»

назначим

событие

сохранитьToolStripMenuItem_Click ,

а кнопке «Шрифт»

событие шрифтToolStripMenuItem_Click.

Проект готов. Остается проверить в работе. Как обычно, сохраняем его, проводим сборку (Build) и отправляем на выполнение.

После выбора пункта «Файл» и подпункта «Открыть» появится окно диалога вида (рис. 9.19).

Рис. 9.19

Как видно, отображается единственный файл заданного нами типа – его имя rich1. Выбрав его и щелкнув по кнопкеОткрыть,

183

мы и получим его содержимое на форме в окне richTextBox (см.

рис. 9.20).

Рис. 9.20

В данном окне можем дописать текст и попробовать изменить шрифт. Щелкнем по пункту«Редактирование» и подпункту «Шрифт» – получим окно вида (рис. 9.21)

Рис. 9.21

В результате (когда щелкнем ОК в данном окошке), получим на форме результат, например, такого вида (см. рис. 9.22).