Вход/Регистрация
Программирование КПК и смартфонов на .NET Compact Framework
вернуться

Климов Александр Петрович

Шрифт:

 // Имитируем нажатие кнопку выключения устройства

 keybd_event(VK_OEM_8, 0, 0, 0);

}

Дополнительные материалы

Если вы хотите узнать о клавиатуре еще больше, то стоит обратить внимание на блог Алекса Яхнина, который можно найти по адресу blog.opennetcf.org/ayakhnin. Там можно найти статью «Keyboard hook in the CF v2». В данной статье рассказывается о перехвате всех сообщений, которые посылаются при нажатии любых кнопок устройства. Также может быть полезна статья «Custom SIP Control for CF». Автор статьи предлагает собственную реализацию элемента

InputControl
, который содержит свою виртуальную клавиатуру. Этот пример может пригодиться при создании приложения, в котором не используется стандартная панель ввода SIP, но при этом пользователь должен иметь возможность ввода информации.

Глава 6

Графика

Классы для программирования графики

Программирование графики в .NET Compact Framework опирается на те же базовые приемы, что и работа с графикой для полной версии .NET Framework. Все основные классы для работы с графикой сосредоточены в пространстве имен

System.Drawing
. С помощью этих классов можно рисовать всевозможные фигуры, отображать линии, работать с изображениями и даже манипулировать текстом. В качестве своеобразного холста для графических опытов можно использовать поверхность формы или элементов управления. Самым главным классом является класс
Graphics
, который предоставляет поверхность и методы для вывода графики. Также широко используются в графике такие классы, как
Pen
,
Brush
,
Color
,
Rectangle
,
Line
,
Image
.

Класс Pen

Класс

Pen
используется для создания пера, при помощи которого проводятся прямые и кривые линии. В отличие от полной версии .NET Framework, поддерживающей четыре перегруженных версии конструктора
Pen
, .NET Compact Framework позволяет создавать перо только с помощью двух конструкторов. При вызове метода
Pen(Color)
создается перо указанного цвета. Конструктор
Pen(Color, Single)
позволяет создавать перо указанных цвета и ширины. Но второй вариант поддерживается только в .NET Compact Framework 2.0.

В листинге 6.1 приведен пример создания перьев синего и красного цветов. Затем при помощи перьев создаются две линии.

Листинг 6.1

private void Form1_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 // Синее перо толщиной 1 пиксел

 Pen bluePen = new Pen(Color.Blue);

 // Красное перо толщиной 5 пикселов

 Pen redFatPen = new Pen(Color.Red, 5);

 g.DrawLine(bluePen, 10, 10, 230, 10);

 g.DrawLine(redFatPen, 10, 20, 230, 20);

}

Класс Brush

Класс

Brush
является абстрактным классом для создания кистей, с помощью которых можно рисовать фигуры и текст на графической поверхности. Библиотека .NET Compact Framework поддерживает классы
SolidBrush
и
TextureBrush
. К сожалению, класс
LinearGradientBrush
, позволяющий рисовать красивые фигуры, в настоящее время не поддерживается.

Класс SolidBrush

При создании объекта

SolidBrush
нужно просто указать цвет, который будет использоваться для отображения фигур. Чтобы сменить цвет кисти, достаточно указать новый цвет в свойстве
Color
. В листинге 6.2 приведен код, который позволяет нарисовать зеленый круг и желтый прямоугольник.

Листинг 6.2

private void Form1_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 // Создаем кисть зеленого цвета

 SolidBrush myBrush = new SolidBrush(Color.Green);

 // Рисуем закрашенный круг

 g.FillEllipse(myBrush, 10, 30, 30, 30);

 // Меняем цвет кисти на желтый

 myBrush.Color = Color.Yellow;

 // Рисуем закрашенный прямоугольник

 g.FillRectangle(myBrush, 50, 30, 50, 25);

}

Класс TextureBrush

Класс

TextureBrush
позволяет создавать текстурную кисть. Подобная текстурная кисть позволяет не рисовать однородным цветом, а применять текстурное заполнение отображаемых графических примитивов. Использование подобной кисти позволяет добиваться красивых эффектов. В листинге 6.3 приведен пример использования текстурной кисти с использованием изображения, входящего в состав Windows Mobile 2003.

Листинг 6.3

private void Form1_Paint(object sender, PaintEventArgs e) {

  • Читать дальше
  • 1
  • ...
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: