Шаг 72.
Microsoft Visual C++ 2010. Начала.
Программирование. Графика. Графические примитивы. Текст (продолжение)

    На этом шаге мы рассмотрим вывод текста созданным шрифтом.

    В примере предыдущего шага для вывода текста используется шрифт формы, заданный свойством 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

    На следующем шаге мы продолжим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг