Как Включить Автоматический Поворот Экрана На Планшете

Обнаружение ориентации экрана и поворота экрана в приложениях для планшетных ПК

Платформа SDK для планшетных ПК Microsoft®

Резюме: Узнайте, как определить, просматривает ли пользователь планшетный ПК в портретной или альбомной ориентации и соответствующим образом настраивает приложение. В этой статье описываются способы обнаружения, когда пользователь переключается между портретной и альбомной ориентацией на планшетном ПК. В описаниях и примерах C #, Visual Basic .NET, C ++ и Visual Basic версии 6.0 используются Microsoft Tablet PC Platform SDK версии 1.5 API. Читатели должны быть знакомы с SDK для ПК с планшетным ПК и управляемым кодом. (10 печатных страниц)

автоповорот экрана не работает android ПРОБЛЕМА РЕШЕНА

содержание

Введение

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

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

Чтобы определить текущую ориентацию экрана в управляемом или автоматическом коде, вы вызываете метод, описывающий текущее состояние экрана. Чтобы обнаружить поворот экрана в управляемом или автоматическом коде, вы прослушиваете событие, которое указывает, что дисплей изменился, а затем вызовите метод, который описывает текущее состояние экрана. Во всех случаях, сравнивая высоту и ширину экрана, вы определяете, находится ли пользователь в портретной или альбомной ориентации. Примеры приведены в C #, Microsoft Visual Basic® .NET, C ++ и Visual Basic 6.0.

В этой статье обсуждается, как определить:

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

В этой статье не обсуждается:

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

Для получения дополнительной информации об оптимизации приложения для ориентации экрана или определения ориентации первичной или вторичной ориентации экрана см. «Проектирование для портретных и ландшафтных экранных дисплеев в Microsoft Tablet PC Platform SDK версии 1.5».

Дополнительные сведения о рекомендациях по визуальному дизайну см. В Руководстве по визуальному дизайну в Microsoft SDK версии 1.5 для планшетных ПК.

Дополнительные сведения о нескольких мониторах см. В разделе Многоэкранные мониторы в библиотеке MSDN®.

Как определить текущую ориентацию экрана

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

Определение ориентации экрана с помощью управляемого кода

В управляемом коде вы ищете свойство Bounds элемента Primary Screen объекта Screen, которое возвращает тип Rectangle. Затем вы сравниваете высоту и ширину этого прямоугольника.

Следующий пример C # определяет, просматривает ли пользователь приложение в портретной или альбомной ориентации.

Visual Basic .NET

Следующий пример Visual Basic .NET определяет, просматривает ли пользователь приложение в портретной или альбомной ориентации.

Определение ориентации экрана с помощью C ++ и Visual Basic 6.0

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

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

Visual Basic 6.0

Следующий пример Visual Basic 6.0 определяет, просматривает ли пользователь приложение в портретной или альбомной ориентации, возвращая свойства Width и Height объекта Screen.

Как определить поворот экрана

И API Microsoft .NET Framework, и API Win32 позволяют обнаруживать изменения ориентации экрана. В управляемом коде вы назначаете обработчик событий событию DisplaySettingsChanged класса SystemEvents.

Для приложений, написанных на C ++ и Visual Basic 6.0, вы обнаруживаете изменения в ориентации экрана, назначая обработчик событий сообщению _win32_WM_DISPLAYCHANGE. Когда настройки дисплея меняются, вы сравниваете высоту и ширину нового экрана. Если высота больше ширины, приложение находится в портретной ориентации; если ширина больше высоты, приложение находится в альбомной ориентации.

Обнаружение вращения экрана с помощью управляемого кода

Конкретным способом обнаружения вращения экрана при использовании управляемого кода является установка обработчика для DisplaySettingsChanged события SystemEvents класс. Затем вы присоединяете обработчик событий для сравнения Высота а также Ширина свойства экран объект, как показано в предыдущих примерах управляемых кодов.

Следующий пример C # иллюстрирует, как определять, когда пользователь изменяет любые настройки дисплея. Затем вы проверяете, просматривает ли пользователь приложение в портретной или альбомной ориентации и соответствующим образом корректирует ваше приложение.

Visual Basic .NET

Следующий пример Visual Basic .NET иллюстрирует, как определять, когда пользователь изменяет любые параметры отображения. Затем вы проверяете, просматривает ли пользователь приложение в портретной или альбомной ориентации и соответствующим образом корректирует ваше приложение.

Обнаружение вращения экрана с использованием C ++ и Visual Basic 6.0

Чтобы обнаружить поворот экрана в приложениях, написанных на C ++, вы прослушиваете сообщение WM_DISPLAYCHANGE, установив регистр для WM_DISPLAYCHANGE сообщение в инструкции переключателя функции WindowProc. Затем вы используете LPARAM параметр WindowProc чтобы получить высоту и ширину полного экрана. Следующий пример C ++ иллюстрирует этот процесс.

Visual Basic 6.0

Чтобы обнаружить поворот экрана в приложениях, написанных на Visual Basic 6.0, вы подключаете WindowProc функцию для прослушивания сообщения WM_DISPLAYCHANGE. Затем вы используете LPARAM параметр WindowProc чтобы получить высоту и ширину полного экрана, как в предыдущем примере Visual Basic 6.0. Наконец, вы отцепляетесь, восстанавливая значение по умолчанию WindowProc функция. Следующий пример Visual Basic 6.0 иллюстрирует этот процесс.

Похожие вопросы