Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework
- Название:Программирование КПК и смартфонов на .NET Compact Framework
- Автор:
- Жанр:
- Издательство:Питер
- Год:2007
- Город:Санкт-Петербург
- ISBN:978-5-91180-270-7
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Александр Климов - Программирование КПК и смартфонов на .NET Compact Framework краткое содержание
Мобильные устройства все активнее вторгаются в нашу жизнь. Карманные компьютеры и смартфоны давно утратили статус дорогих игрушек и перекочевали в разряд необходимых устройств. Значит, для них необходимо создавать программное обеспечение. Так почему вы должны оставаться в стороне?
Прочитав эту книгу, вы получите знания, которые позволят вам уверенно создавать программы для карманных компьютеров и смартфонов. А огромное количество разнообразных примеров поможет быстро совершенствоваться и развиваться, обогащая свой опыт работы.
Книга предназначена для начинающих программистов.
Программирование КПК и смартфонов на .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
[DllImport("coredll.dll", EntryPoint = "SendMessage")]
private static extern uint SendMessage(IntPtr hWnd, uint msg,
uint wParam, uint lParam);
// Сообщение для режима ввода
const uint EM_SETINPUTMODE = 0x00DE;
// Перечисление режимов ввода
public enum InputModeAPI {
Spell = 0,
T9 = 1,
Numbers = 2,
Text = 3
}
public static void SetInputMode(Control ctrl, InputModeAPI mode) {
SendMessage(ctrl.Handle, EM_SETINPUTMODE, 0, (uint)mode);
}
private void mnuT9_Click(object sender, EventArgs e) {
SetInputMode(textBox3, InputModeAPI.T9);
}
private void mnuSpell_Click(object sender, EventArgs e) {
SetInputMode(textBox3, InputModeAPI.Spell);
}
private void mnuNumeric_Click(object sender, EventArgs e) {
SetInputMode(textBox3, InputModeAPI.Numbers);
}
private void mnuText_Click(object sender, EventArgs e) {
SetInputMode(textBox3, InputModeAPI.Text);
}
В данном примере нужный режим ввода указывается для текстового поля textBox3
с помощью системы меню (рис. 9.6).

Рис. 9.6. Выбираем режим ввода
Режим T9 в эмуляторе не работает, поэтому надо проверять код на реальном устройстве.
В библиотеке .NET Compact Framework 2.0 появилась возможность контролировать режим ввода текста с помощью класса InputModeEditor
. Данный режим распространяется только на текстовые поля.
Предположим, что в программе есть два текстовых поля. В одном поле пользователь должен ввести свое имя, а во втором — номер телефона. В первом случае пользователь будет использовать буквы, а во втором случае ему необходимы только цифры. Поэтому можно заранее задать нужный режим ввода текста для разных текстовых полей. Для этого надо указать ссылку на сборку Microsoft.WindowsCE.Forms
и задействовать класс InputModeEditor
, как показано в листинге 9.3.
private void Form1_Load(object sender, EventArgs e) {
// Устанавливаем текстовый режим ввода текста
InputModeEditor.SetInputMode(txtName, InputMode.AlphaCurrent);
// Устанавливаем числовой режим ввода текста
InputModeEditor.SetInputMode(txtPhone, InputMode.Numeric);
}
Переопределение клавиш Soft Key
На смартфонах клавиши Soft Key 1
и Soft Key 2
используются для управления меню. Если попробовать переопределить эти клавиши для других задач, то у вас ничего не получится. Дело в том, что события Key_Down
не распознаются системой для этих клавиш, если на форме присутствует компонент MainMenu
. Но если удалить этот компонент, устанавливаемый по умолчанию, то с этими кнопками можно будет связать собственные команды, как показано в листинге 9.4.
private void Form1_KeyDown(object sender, KeyEventArgs e) {
if ((e.KeyCode == System.Windows.Forms.Keys.F1)) {
// Soft Key 1
lblTest.Text = "Вы нажали на клавишу Soft Key 1";
}
if ((e.KeyCode == System.Windows.Forms.Keys.F2)) {
// Soft Key 2
lblTest.Text = "Вы нажали на клавишу Soft Key 2";
}
Прокручивание формы
Если форма не умещается на экране целиком, то пользователь может прокрутить ее стилусом с помощью полос прокрутки. Особенно это полезно, если учесть, что .NET Compact Framework 2.0 теперь поддерживает свойство AutoScroll
. Но смартфоны не имеют сенсорного экрана, реагирующего на стилус. Для прокрутки формы надо искать другой вариант.
Например, можно воспользоваться обработкой события KeyDown
. В тестовом проекте надо растянуть форму так, чтобы нижнюю часть не было видно на экране смартфона. На форме надо разместить несколько надписей, причем одна из них должна располагаться в нижней части формы. Для свойства формы AutoScroll
надо задать значение True
. В листинге 9.5 приведен пример кода для прокрутки формы.
private void Form1_KeyDown(object sender, KeyEventArgs e) {
if ((e.KeyCode == System.Windows.Forms.Keys.Up)) {
// Up
this.AutoScrollPosition =
new Point(-this.AutoScrollPosition.X, -this.AutoScrollPosition.Y - 16);
}
if ((e.KeyCode == System.Windows.Forms.Keys.Down)) {
// Down
this.AutoScrollPosition =
new Point(-this.AutoScrollPosition.X, -this.AutoScrollPosition.Y + 16);
}
if ((e.KeyCode == System.Windows.Forms.Keys.Left)) {
// Left
this.AutoScrollPosition =
new Point(-this.AutoScrollPosition.X - 16, -this.AutoScrollPosition.Y);
}
if ((e.KeyCode == System.Windows.Forms.Keys.Right)) {
// Right
this.AutoScrollPosition =
new Point(-this.AutoScrollPosition.X + 16, -this.AutoScrollPosition.Y);
}
}
После запуска приложения можно нажимать на клавиши навигации. Написанный код позволит прокручивать форму в выбранном направлении. Но здесь нас подстерегает одна опасность. Код будет работать лишь тогда, когда форма имеет фокус. Если форма содержит элементы управления, то фокус может находиться у данного элемента. И тогда нажатия на клавиши навигации не принесут желаемого результата. Это ограничение легко обходится добавлением соответствующего обработчика события, как показано в листинге 9.6.
private void Form1_Load(object sender, EventArgs e) {
pictureBox1.Focus();
this.pictureBox1.KeyDown += new KeyEventHandler(Form1_KeyDown);
}
Теперь, даже если фокус находится не у формы, пользователь все равно сможет прокручивать форму при помощи клавиш навигации.
Глава 10
Windows Mobile 5.0
Первый взгляд
Устройства под управлением Windows Mobile, к которым относятся КПК и смартфоны, все глубже вторгаются в нашу жизнь. Эти устройства очень быстро эволюционируют, обзаводятся более совершенными экранами, увеличивают размер своей дисковой памяти, снабжаются фотокамерами и получают поддержку новых сетевых технологий. Операционная система Windows Mobile 5.0 сделала еще один шаг в развитии этих маленьких, но умных устройств.
В новой платформе появилась поддержка двухмерных и 3D-изображений, появилось больше возможностей обработки мультимедийных файлов, намного проще стало взаимодействовать с фотокамерами и устройствами позиционирования GPS. Причем эта поддержка осуществлена на программном уровне с помощью новых классов и расширения функциональности старых классов.
Компания Microsoft уделяет большое внимание данной платформе, предоставляя разработчикам подробнейшую документацию, примеры и инструменты разработки. Главная страница для Window Mobile 5.0 находится на сайте Windows Mobile по адресу msdn.microsoft.com/mobility/windowsmobile/default.aspx.
На сайте можно скачать необходимые пакеты SDK, позволяющие работать с устройствами под управлением Windows Mobile 5.0. В этой главе будут рассматриваться новые возможности, заложенные в систему Windows Mobile 5.0, которые будут интересны программистам.
Улучшенная продуктивность
В системе Windows Mobile 5.0 появились нововведения, которые увеличивают продуктивность труда программиста. Основные возможности перечислены в следующем списке.
Читать дальшеИнтервал:
Закладка: