Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 197

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 191 192 193 194 195 196 < 197 > 198 199 200 201 202 203 .. 404 >> Следующая


Вам также придется внести изменения в реализацию метода

OnPrintPage(), КОТОрые ПОЗВОЛЯТ ИСПОЛЬЗОВаТЬ ВЫбрЭННЫЙ Шрифт

при выводе иа печать. В предшествующей реализации нами был создан НОВЫЙ объект Font В методе DrawStringO Объекта Graphics.

В данном случае мы вместо этого используем шрифт объекта textBoxEdit, считывая значение свойства Font. Также необходимо учитывать возможность возникновения проблем, если пользователь выбирает слишком большой шрифт. Чтобы избежать ситуацию, при которой текущая строка будет частично налагаться на другую строку,
Использование диалоговых окон

425

расположенную ниже или выше, следует внести соответствующие изменения в фиксированное значенне, которое использовалось для определения позиции строк по вертикали. Нанлучшим способом будет использование в качестве величины, на которую увеличивается вертикальная координата строки, значенне размера шрифта: используйте свойство Height класса Font.

2. Другим существенным расширением приложения Simple Editor будет включение в него возможности изменять цвет шрифта. Добавьте второе подменю во вхождение меню Format — Color... . Добавьте обработчик для данного вхождения меню, в котором осуществляется открытие диалогового окна ColorDialog.

Если пользователь нажимает кнопку ОК. присвоите выбранный в окне ColorDialog цвет свойству ForeCoior текстового окна.

В методе onPrintPage() убедитесь в том, что выбранный цвет используется только в том случае, если принтер поддерживает цветную печать. Проверить, поддерживает ли принтер цветную печать, можно с помощью свойства PageSettinga.Color аргумента PrintPageEventArsrs, Можно создать объект типа кисти того цвета, который используется в текстовом окне, с помощью следующего кода:

Brush brush = new SolidBrushttextBoxEdiC. ForeCoior) t

Эта кисть может использоваться в качестве аргумента метода Drawstring() вместо черной кисти, применявшейся D предыдущем примере.
16

Введение в GDI+

Настоящая глава является введением в программирование с использованием

классов Graphics Device Interface (GDlH---интерфейс графических устройств).

Приложения с графикой, игры, Computer Aided Design/Computer Aided Manufacture (CAD/CAM — проектирование/производство с помощью компьютера), программы для рисования, для создания графиков и многие другие типы приложений требуют от разработчиков написания кода для работы с графикой. Использование создаваемых пользователем управляющих элементов также предполагает работу с графикой. Посредством своей последней библиотеки классов компания Microsoft сделала написание кода для работы с графикой как никогда простым.

Писать код для работы с графикой — это наибольшее удовольствие из всех программистских задач. Это очень здорово, когда ты вносишь изменения в программу и тут же наглядно видишь результаты этих изменении. Если вы создаете собственное графическое окно, в котором нечто представляется новым, оригинальным способом, или, если вы создаете собственный управляющий элемент, который облегчит использование вашего приложения и сделает его более приятным, то это будет благосклонно приниматься широкой публикой.

Сначала объясним механизм рисования с помощью GDI+ и напишем несколько простых примеров графических программ. А затем рассмотрим с точки зрения высокого уровня некоторые дополнительные возможности GDI + . включая:

? Работу с отдельными частями рисунков

? Вывод иа печать

? Предварительный просмотр

? Пространство имен Drawing2D

? Пространство имен Imaging

После этого мы познакомимся с классами, которые необходимо использовать для реализации этих возможностей, а также укажем литературу для дальнейшего изучения. Знание возможностей и понимание иерархии классов — это уже поло-випа успеха.

Обзор вывода графической информации

Первое, что необходимо усвоить при написании графического кода, это то, что Microsoft Windows не запоминает, каким образом выглядит данное графическое окно, если оно заслоняется другими окнами. Если закрытое ранее окно оказывается
Введение в GDI+

427

на переднем плане и становится видимым, то система Windows сообщает нашему приложению: “Ваше окно (или некоторая его часть) становится видимым. Не будете ли так любезны нарисовать его?”. На приложение возлагается только задача рисования содержимого окна. Вывод границ окна, линейки с заголовком и прочих графических составляющих самого окна система Windows возьмет на себя.

С точки зрения программирования когда мы создаем окно, в котором собираемся что-либо нарисовать, то мы, скорее всего, объявляем класс, который является производным ОТ System. Windows. Forms . Form. ЕСЛИ МЫ СОЗДаеМ собственный управляющий элемент, мы должны объявить класс, который является производным от System.windows.Form.userControi. В обоих случаях придется переопределять виртуальную функцию onPainto. В Windows будет происходить обращение к этой функции всякий раз, когда возникает необходимость повторного рисования любой части окна.

При наступлении этого события класс PaintEventArgs передается в качестве аргумента. Представляют интерес два элемента информации, содержащейся в PaintEventArgs,— объекты Graphics И ClipRectangle (вырезанный прямоугольник). Класс Graphics — это следующая тема, которую мы будем изучать. Вопроса вырезания частей рисунка мы коснемся в общих чертах ближе к концу главы.
Предыдущая << 1 .. 191 192 193 194 195 196 < 197 > 198 199 200 201 202 203 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.