Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework

Тут можно читать онлайн Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Питер, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование КПК и смартфонов на .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2007
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-91180-270-7
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework краткое содержание

Программирование КПК и смартфонов на .NET Compact Framework - описание и краткое содержание, автор Александр Климов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Мобильные устройства все активнее вторгаются в нашу жизнь. Карманные компьютеры и смартфоны давно утратили статус дорогих игрушек и перекочевали в разряд необходимых устройств. Значит, для них необходимо создавать программное обеспечение. Так почему вы должны оставаться в стороне?

Прочитав эту книгу, вы получите знания, которые позволят вам уверенно создавать программы для карманных компьютеров и смартфонов. А огромное количество разнообразных примеров поможет быстро совершенствоваться и развиваться, обогащая свой опыт работы.

Книга предназначена для начинающих программистов.

Программирование КПК и смартфонов на .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)

Программирование КПК и смартфонов на .NET Compact Framework - читать книгу онлайн бесплатно, автор Александр Климов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Format16bppRgb555;

Format16bppRgb565;

Format24bppRgb;

Format32bppRgb.

На сайте MSDN можно найти статью «How to: Use LockBits» с примером, в котором создается картинка и меняется интенсивность синих пикселов с помощью метода LockBits. В листинге 6.21 приведен пример, который для большей наглядности пришлось немного изменить.

Листинг 6.21

private Bitmap CreateBitmap(int width, int height) {

Bitmap bmp = new Bitmap(@"\Windows\msn.gif");

width = bmp.Size.Width;

height = bmp.Size.Height;

Graphics g = Graphics.FromImage(bmp);

g.Dispose();

return bmp;

}

protected override void OnPaint(PaintEventArgs e) {

Bitmap bmp = CreateBitmap(100, 100);

// Выводим картинку-оригинал

e.Graphics.DrawImage(bmp, 0, 0);

MakeMoreBlue(bmp);

// Рисуем модифицированную картинку ниже исходного изображения

e.Graphics.DrawImage(bmp, 0, 50);

bmp.Dispose();

}

private void MakeMoreBlue(Bitmap bmp) {

// Задаём формат данных о цвете для каждой точки изображения

PixelFormat pxf = PixelFormat.Format24bppRgb;

// Блокируем изображение в памяти

Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);

BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, pxf);

// Получаем адрес первой строки развертки

IntPtr ptr = bmpData.Scan();

// Массив, содержащий байты изображения

int numBytes = bmp.Width * bmp.Height * 3;

byte[] rgbValues = new byte[numBytes];

// Копируем значения RGB в массив

Marshal.Copy(ptr, rgbValues, 0, numBytes);

// Модифицируем изображение, устанавливая

// синий цвет для каждой точки в картинке

for (int counter = 0; counter < rgbValues.Length; counter += 6)

rgbValues[counter] = 255;

// Копируем значения RGB обратно в изображение

Marshal.Сору(rgbValues, 0, ptr, numBytes);

// Разблокируем биты в памяти

bmp.UnlockBits(bmpData);

}

После запуска приложения на экране будут показаны две копии картинки, причем нижнее изображение будет немного отличаться от верхнего насыщенностью цветов.

Графический редактор

Теперь, когда мы ознакомились с графическими методами, настало время написать простейший графический редактор с минимальными возможностями. В этом приложении можно будет рисовать при помощи стилуса линии, а также прямые цветные линии из трех цветов. Процесс рисования узоров на экране КПК при помощи стилуса гораздо больше похож на реальное рисование, чем рисование мышью в стандартных графических редакторах.

Весь код программы сводится к обработке событий мыши MouseDown, MouseMoveи MouseUp. В принципе, приемы создания графических эффектов ничем не отличаются от соответствующих приемов, применяемых на обычных персональных компьютерах. Я взял два примера из своей книги «Занимательное программирование на Visual Basic .NET» и перенес код в проект с учетом синтаксиса языка С#, что иллюстрирует листинг 6.22.

Листинг 6.22

private int x_md, y_md;

Pen myPen = new Pen(Color.LightBlue);

private bool bPaint;

Graphics g;

private Pen erasePen;

private Point ptsStart;

private Point ptsPrevious;

private Point ptsCurrent;

private void Form1_MouseDown(object sender, MouseEventArgs e) {

// Начинаем рисование

bPaint = true;

if (mnuLines.Checked) {

ptsStart.X = e.X;

ptsStart.Y = e.Y;

ptsPrevious = ptsStart;

}

if (mnuPaint.Checked) {

// координаты стилуса при нажатии

x_md = e.X;

y_md = e.Y;

}

}

private void Form1_MouseMove(object sender, MouseEventArgs e) {

if (bPaint) {

if (mnuLines.Checked) {

ptsCurrent.X = e.X;

ptsCurrent.Y = e.Y;

g = CreateGraphics();

g.DrawLine(erasePen, ptsStart.X, ptsStart.Y, ptsPrevious.X, ptsPrevious.Y);

g.DrawLine(myPen. ptsStart.X, ptsStart.Y, ptsCurrent.X, ptsCurrent.Y);

ptsPrevious = ptsCurrent;

g.Dispose();

}

if (mnuPaint.Checked) {

g = CreateGraphics();

int x_mm = e.X;

int y_mm = e.Y;

g.DrawLine(myPen, x_md, y_md, x_mm, y_mm);

x_md = x_mm;

y_md = y_mm;

g.Dispose();

}

}

}

private void Form1_MouseUp(object sender, MouseEventArgs e) {

bPaint = false;

}

private void mnuClear_Click(object sender, EventArgs e) {

g = CreateGraphics();

g.Clear(this.BackColor);

g.Dispose();

}

private void Form1_Load(object sender, EventArgs e) {

erasePen = new Pen(this.BackColor);

}

private void mnuPaint_Click(object sender, EventArgs e) {

mnuPaint.Checked = !mnuPaint.Checked;

mnuLines.Checked = !mnuLines.Checked;

}

private void mnuGreenPen_Click(object sender, EventArgs e) {

myPen.Color = Color.Green;

}

private void mnuRedPen_Click(object sender, EventArgs e) {

myPen.Color = Color.Red;

}

На рис. 6.9 показано, как выглядит созданный графический редактор в работе.

Рис 69 Простейший графический редактор Дополнительные материалы Если нужно - фото 47

Рис. 6.9. Простейший графический редактор

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

Если нужно ознакомиться с дополнительными материалами по программированию графики, то стоит обратиться к статьям документации MSDN. Например, в статье «How to: Display a Gradient Fill» рассказывается том, как раскрасить элемент градиентной заливкой. Также в документации MSDN имеется статья уже известного нам Алекса Яхнина «Creating a Microsoft .NET Compact Framework-based Animation Control», в которой рассказывается о создании элемента управления, способного воспроизводить анимированное изображение, создавая его на основе серии картинок. Тем, кто планирует писать приложения для устройств под управлением Windows Mobile 5.0, стоит обратить внимание на технологию Windows Mobile DirectX and Direct3D, которая дает дополнительные возможности для работы с графикой.

Глава 7

Разработка приложений

Активация и деактивация формы

Модель выполнения программ на карманном компьютере отличается от поведения программ, работающих на обычном персональном компьютере. Например, на мобильных компьютерах используется один экземпляр запущенной программы. Аналогом подобного поведения на настольных компьютерах является почтовая программа Outlook Express, которая всегда запускается в одном экземпляре. При попытке запуска программы она просто активируется (если уже была запущена). При этом вторая копия программы не запускается.

При создании приложения для КПК разработчику не придется прилагать никаких усилий для реализации подобного поведения. Среда выполнения .NET Compact Framework сама позаботится о том, чтобы запускался только один экземпляр программы. Следует помнить, что пользователь не должен сам закрывать программу. При запуске новой программы ее окно просто загораживает предыдущую программу.

Учитывая подобное поведение, нужно писать программы, которые не занимают много ресурсов системы. Однажды запущенное приложение может находиться в памяти несколько дней, пока пользователь не перезагрузит компьютер или не закроет программу самостоятельно. Деактивированная программа закроется автоматически, если система обнаружит уменьшение свободной памяти при разрядке батареи. Но, тем не менее, иногда надо проследить, чтобы при закрытии программа освободила ресурсы, которые она использовала. Бывают ситуации, когда приложение поддерживает соединение с базой данных или осуществляет связь с СОМ-портами. В этом случае система может не освободить занимаемые программой ресурсы. Для отслеживания состояния формы используются события Form.Deactivateи Form.Activated. В листинге 7.1 приведен пример работы с этими событиями.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Александр Климов читать все книги автора по порядку

Александр Климов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программирование КПК и смартфонов на .NET Compact Framework отзывы


Отзывы читателей о книге Программирование КПК и смартфонов на .NET Compact Framework, автор: Александр Климов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x