Шаг 1: Отображение текста на форме
В приложении, созданном на первом шаге, будет показано, как отобразить на форме текст. На рис. 6.5. можно увидеть, как выглядит это приложение при выполнении.
Рис. 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.