Чтение онлайн

ЖАНРЫ

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

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

Шрифт:

 public Int16 Duplex;

 public Int16 Yresolution;

 public Int16 TTOption;

 public Int16 Collate;

 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]

 public String FormName;

 public Int16 LogPixels;

 public Int32 BitsPerPel;

 public Int32 PelsWidth;

 public Int32 PelsHeight;

 public Int32 DisplayFlags;

 public Int32 DisplayFrequency;

 public Int32 DisplayOrientation;

}

private void butCheckRotate_Click(object sender, EventArgs e) {

 //
подготавливаем структуру DeviceMode

 DeviceMode devMode = new DeviceMode;

 devMode.Size = (Int16)Marshal.SizeOf(devMode);

 devMode.Fields = DisplayQueryOrientation;

 // Проверяем, поддерживает ли система поворот экрана

 Int32 result =

ChangeDisplaySettingsEx(null, ref devMode, IntPtr.Zero, CDS_TEST,

IntPtr.Zero);

 if (result == 0) {

// Если вызов функции прошел успешно.

// то проверяем поддержку поворота экрана

// Если параметр DisplayOrientation имеет ненулевое

// значение то поворот экрана возможен

if (devMode.DisplayOrientation != 0) {

MessageBox.Show("Поворот экрана поддерживается");

}

 } else {

MessageBox.Show("Поворот экрана не поддерживается");

 }

}

private void butRot90_Click(object sender, EventArgs e) {

 SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;

}

private void butRestore_Click(object sender, EventArgs e) {

 if (SystemSettings.ScreenOrientation != initialOrientation) {

try {

SystemSettings.ScreenOrientation = initialOrientation;

} catch (Exception) {

// Unable to change the orientation back

// to the original configuration.

MessageBox.Show("This sample was unable to set the " +

"orientation back to the original state.");

}

 }

}

Прячем кнопку Start

Функция

SHFullScreen
позволяет прятать и показывать кнопку Start и пиктограмму виртуальной клавиатуры SIP. Соответствующий код приведен в листинге 13.6.

Листинг 13.6

/// <summary>

///
Функция используется для изменения вида экрана.

/// Вы можете модифицировать панель задач, панель ввода, значок

/// Пуск

/// </summary>

/// <param name="hwndRequester">Дескриптор окна</param>

/// <param name="dwState">Определяет состояние окна</param>

/// <returns>B успешном случае возвращается True, иначе -

/// False</returns>

[DllImport("aygshell.dll")]

static extern uint SHFullScreen(IntPtr hwndRequester, uint dwState);

const uint SHFS_SHOWTASKBAR = 0x0001;

const uint SHFS_HIDETASKBAR = 0x0002;

const uint SHFS_SHOWSIPBUTTON = 0x0004;

const uint SHFS_HIDESIPBUTTON = 0x0008;

const uint SHFS_SHOWSTARTICON = 0x0010;

const uint SHFS_HIDESTARTICON = 0x0020;

private void butHideStart_Click(object sender, EventArgs e) {

 IntPtr hwnd = this.Handle;

 //прячем кнопку Start

 SHFullScreen(hwnd, SHFS_HIDESTARTICON);

 //прячем SIP

 //SHFullScreen(hwnd, SHFS_HIDESIPBUTTON);

}

private void butShowStart_Click(object sender, EventArgs e) {

 //показываем кнопку Start

 IntPtr hwnd = this.Handle;

 SHFullScreen(hwnd, SHFS_SHOWSTARTICON);

 //показываем SIP

 //SHFullScreen(hwnd, SHFS_SHOWSIPBUTTON);

}

В примере показано, как прятать кнопку

Start
. Если нужно спрятать пиктограмму SIP, то надо убрать комментарии при втором вызове функции. На рис. 13.1 показан внешний вид экрана со спрятанной кнопкой
Start
.

Рис. 13.1. Скрытие кнопки Start

Панель задач

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

Start
. Теперь нужно рассмотреть пример работы с панелью задач.

Для создания тестового приложения на форме надо разместить две кнопки. Одна из них будет скрывать панель задач, а вторая — показывать ее. Соответствующий код приведен в листинге 13.7.

Листинг 13.7
Поделиться с друзьями: