На этом шаге мы рассмотрим вывод текста созданным шрифтом.
В примере предыдущего шага для вывода текста используется шрифт формы, заданный свойством Font. Если текст надо вывести шрифтом, отличным от шрифта, заданного для формы, то этот шрифт следует создать - объявить и инициализировать объект типа Font.
Инструкция создания шрифта (вызова конструктора) выглядит так:
System::Drawing::Font^ aFont =
gcnew System::Drawing::Font(FontFamily,Size,FontStyle);
Параметр FontFamily (строкового типа) задает шрифт, на основе которого создается новый (определяет семейство, к которому относится создаваемый шрифт). В качестве значения параметра FontFamily можно использовать название шрифта, зарегистрированного в системе (Arial, Times New Roman, Tahoma). Параметр Size задает размер (в пунктах) шрифта. Параметр FontStyle определяет стиль символов шрифта:
Параметр FontStyle можно не указывать. В этом случае будет создан шрифт обычного начертания (FontStyle::Regular).
Следует обратить внимание, что изменить характеристики созданного шри-та нельзя (свойства FontFamily, Size и Style объекта Font определены "только для чтения"). Поэтому если в программе предполагается использовать разные шрифты, их необходимо создать.
В примере ниже приведена функция обработки события Paint, демонстрирующая создание и использование шрифтов для вывода текста на поверхность формы (рисунок 1).
private: System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { int x,y; x = 10; y = 10; String^ st = "Microsoft Visual Studio 2010"; System::Drawing::Font^ rFont = gcnew System::Drawing::Font ("Tahoma", 11, FontStyle::Regular); System::Drawing::Font^ bFont = gcnew System::Drawing::Font ("Tahoma", 11, FontStyle::Bold); System::Drawing::Font^ iFont = gcnew System::Drawing::Font ("Tahoma", 11, FontStyle::Italic); e->Graphics->DrawString(st, rFont, Brushes::Black, x, y); e->Graphics->DrawString(st, bFont, Brushes::Black, x, y+20); e->Graphics->DrawString(st, iFont, Brushes::Black, x, y+40); }
Рис.1. Вывод текста на поверхность формы методом DrawString
На следующем шаге мы продолжим изучение этого вопроса.