Иллюстрированный самоучитель по Architecture .NET

Шаг 1: Отображение текста на форме

В приложении, созданном на первом шаге, будет показано, как отобразить на форме текст. На рис. 6.5. можно увидеть, как выглядит это приложение при выполнении.

Иллюстрированный самоучитель по Architecture .NET › Создание графических пользовательских интерфейсов › Шаг 1: Отображение текста на форме
Рис. 6.5. Отображение текста на простой форме (Шаг 1)

Вывод данных в программах Windows сильно отличается от вывода данных в аналогичных консольных приложениях, где для этого используется метод Console::WriteLine. Вычерчивание результата в окне часто называют закрашиванием или закраской. Закрашивание выполняется в ответ на сообщение "раскрасить", WM_PAINT. Такой способ закрашивания по требованию гарантирует, что если окно будет накрыто каким-либо другим окном, а затем открыто снова, то содержимое окна будет отображено корректно.

Еще одно отличие выполнения вывода в Windows-программах от выполнения вывода в консольных приложениях состоит в том, что необходимо определить все детали. Например, нужно указать координаты области рисования, "кисть", которой будет выполняться рисование, шрифт текста, и так далее. Вот код приложения, созданного на шаге 1.

//SimpleForm.cpp – Шаг 1
// Эта версия отображает приветствие
fusing <mscorlib.dll>
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
// использование пространства имен Система;
using namespace System::Windows:.Forms;
// использование пространства имен Система.:Windows::Формы;
using namespace System::Drawing;
// использование пространства имен Система::Рисование;
_gc class Forml: public Form
// класс сборщика мусора Forml: общедоступная Форма
{
private: // частный
float x, у; // с плавающей точкой Brush *pSto<Brush; // Кисть public:
Forml() {
Size = // Размер
*_nogc new System::Drawing::Size(300.200);
// Размер
Text = "Simple Form – Step 1";
// Текст = "Простая Форма – Шаг 1";
x = у = 10; pStdBrush = new SolidBrush(Color::Black);
// Красить::
// Черным } protected: // защищенный
virtual void OnPaint(PaintEventArgs * ppea)
{
ppea › get_Graphics() › Graphics::DrawString // Графика
("Hello, Window Forms", Font,
// "Привет, Формы Window ", Шрифт,
pStdBrush, x, у);
}
public:
static void Main() {
Application.:Ran(new Forml);
// Приложение:: Выполнить (новая Форма),
}
};
int _stdcall WinMain(
long hlnstance, // дескриптор текущего экземпляра
long hPrevInstance, // дескриптор предыдущего экземпляра
long IpCmdLine, // командная строка
int nCmdShow // состояние отображения)
{
Forml::Main();
return 0;
}

Для того чтобы рисовать с помощью Windows Forms (Формы Windows), нужно переопределить виртуальный метод OnPaint. Класс PaintEventArgs содержит объект Graphics в качестве свойства, доступного только для чтения. Класс Graphics, который принадлежит пространству имен System::Drawing (Система::Рисунок), содержит методы рисования.

Параметры метода Drawstring:

  • выводимая строка,
  • шрифт (Font (Шрифт) – свойство класса Form (Форма), которое определяет шрифт, по умолчанию применяемый для вывода текста в форму),
  • используемая кисть,
  • координаты в пикселях (числа типа float (с плавающей точкой))

В качестве стандартной кисти используется черная кисть SolidBrush.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.