Книга: Программирование КПК и смартфонов на .NET Compact Framework
Элемент HardwareButton
Разделы на этой странице:
Элемент HardwareButton
На карманных компьютерах кроме клавиш навигации присутствуют также дополнительные кнопки, при помощи которых активируются часто запускаемые приложения. Как правило, в состав программного обеспечения КПК входит утилита, с помощью которой можно назначить каждой из этих кнопок определенные команды. Но можно представить ситуацию, когда для создаваемой игры нужно, чтобы управление осуществлялось с помощью этих кнопок. Тогда необходимо переопределить на время поведение кнопок в вашем приложении. И сделать это можно с помощью элемента HardwareButton
, который появился в .NET Compact Framework 2.0.
Следует рассмотреть пример использования этого нового элемента. Прежде всего нужно создать новый проект и поместить на панели Component tray
два элемента HardwareButton
с именами hrdLeftRotate
и hrdRightRotate
. Для каждой переопределяемой кнопки необходимо создать свой экземпляр элемента HardwareButton
. В рассматриваемом примере будут переопределяться вторая и третья кнопки.
Также на форме надо разместить графическое поле PictureBox
. В него надо загрузить любое изображение и растянуть картинку таким образом, чтобы она заняла верхнюю половину экрана. Изображение надо пристыковать к верхней части формы. Для этого свойству Dock
присваивается значение Top
. Также на форме надо разместить надпись Label
, при помощи которой будут отображаться подсказки. Надпись следует пристыковать к нижней части формы. Для этого свойству Dock
присваивается значение Bottom
. У обоих добавленных элементов HardwareButton
нужно отыскать свойство AssociatedControl
и задать значение Form1
. Также надо изменить значения свойств HardwareKey
. Для первого элемента применяется значение ApplicationKey2
, что соответствует второй кнопке. Для второго элемента задается значение ApplicationKey3
, что соответствует третьей кнопке под экраном. Теперь, когда все необходимые свойства установлены, нужно написать код для события Form1_KeyUp
. Код приведен в листинге 3.31.
Листинг 3.31
private void Form1_Load(object sender, EventArgs e) {
label1.Text = "Нажмите вторую кнопку для поворота экрана на 90 градусов";
}
private void Form1_KeyUp(object sender, KeyEventArgs e) {
switch ((HardwareKeys)e.KeyCode) {
case HardwareKeys.ApplicationKey2:
if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle0) {
SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;
label1.Text =
"Нажмите третью кнопку для поворота экрана в первоначальную позицию";
}
break;
case HardwareKeys.ApplicationKey:
if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle90) {
SystemSettings.ScreenOrientation = ScreenOrientation.Angle();
label1.Text = "Нажмите вторую кнопку для поворота экрана на 90 градусов";
}
break;
default:
break;
}
}
Запустите программу и попытайтесь нажимать по очереди на вторую и третью кнопки под экраном карманного компьютера. Результат показан на рис. 3.22.
Рис. 3.22. Поворот экрана при помощи аппаратных кнопок
ПРИМЕЧАНИЕ
В документации говорится, что различные модели КПК имеют различное число кнопок, причем не все из них поддерживаются на системном уровне. Например, Windows Mobile 2003 для Pocket PC поддерживает четыре кнопки, a Windows Mobile 5.0 для Pocket PC поддерживает пять кнопок. При этом класс HardwareButton не поддерживается смартфонами и другими устройствами на базе Windows СЕ, которые не является устройствами Pocket PC.
- Элемент Button
- Элемент TextBox
- Элемент Label
- Элемент RadioButton
- Элемент Panel
- Элемент CheckBox
- Элемент ComboBox
- Элемент ListBox
- Элемент NumericUpDown
- Элемент DomainUpDown
- Элемент ProgressBar
- Элемент StatusBar
- Элемент TrackBar
- Элемент ToolBar
- Элемент MainMenu
- Элемент ContextMenu
- Элемент Timer
- Элементы OpenFileDialog и SaveFileDialog
- Элементы HScrollBar и VScrollBar
- Список рисунков (ImageList)
- Элемент PictureBox
- Элемент ListView
- Элемент TabControl
- Элемент TreeView
- Элемент InputPanel
- Элемент управления DataGrid
- Элемент Splitter
- Элемент MonthCalendar
- Элемент DateTimePicker
- Элемент DocumentList
- Элемент Notification
- Элемент HardwareButton
- Элемент Button
- Элемент Panel
- Элемент MainMenu
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Письма с элементами графики и вложениями
- Элемент STYLE
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- Добавление, изменение и удаление элементов списка
- Восстановление элементов списка из Корзины
- Вложение файлов в элементы списков