Обработчик событий для окна «Свернуть и развернуть»

StackOverflow https://stackoverflow.com/questions/290139

  •  08-07-2019
  •  | 
  •  

Вопрос

Я занимаюсь разработкой приложения для PocketPC. Когда приложение запускается, вызывается пользовательская функция SetScreenOrientation (270), которая поворачивает экран. Когда приложение закрывается, вызывается функция SetScreenOrientation (0), которая восстанавливает ориентацию экрана.

Таким образом, ориентация экрана не восстанавливается, если пользователь свернул приложение, а это недопустимо.

Кто-нибудь знает, куда (в каких обработчиках событий) следует вызывать SetScreenOrientation (int angle) для установки ориентации экрана при запуске приложения, восстановления ориентации при сворачивании, установки ориентации при максимизации и восстановления ориентации при закрытии?

На самом деле я не знаю, какой обработчик событий обрабатывает события Minimize и Maximize.

Это было полезно?

Решение

Правильное сообщение: WM_SIZE , но ответ Daemin указывает на неправильный раздел справки WM_SIZE. Проверьте wParam. Будьте осторожны, поскольку ваше окно может быть развернуто, но скрыто.

Другие советы

Исходя из моего опыта работы с Windows CE, вы должны справиться с WM_SIZE или WM_WINDOWPOSCHANGED сообщений. Если вы работаете над PocketPC, я бы посоветовал вам сначала взглянуть на сообщение WM_WINDOWPOSCHANGED, поскольку я не уверен, что WM_SIZE имеет нужные параметры, которые вам нужны.

В структуре WINDOWPOS сообщения WM_WINDOWPOSCHANGED посмотрите на флагов, в частности SWP_SHOWWINDOW и SWP_HIDEWINDOW.

<Ч>

Конкретная версия сообщений, на которую вам нужно посмотреть, зависит от используемой операционной системы. Операционная система Pocket PC построена на Windows CE 3.0 (и ниже), а Windows Mobile теперь построена на Windows CE 5.0 (даже на Windows Mobile 6), но также на Windows CE 4. (Источник)

Так что просто посмотрите в соответствующем разделе в MSDN ОС, для которой вы пишете.

Я не знаю, как они называются в мире C ++, но в .NET Compact Framework событие Resize формы приложения будет вызываться, когда вы минимизируете / увеличиваете окно, а затем в коде события вы проверяете WindowState свойство формы, чтобы увидеть, минимизирована ли она или mazimized.

Изменение состояния вашего КПК изнутри вашего приложения рискованно (хотя для этого есть множество веских причин), потому что если ваше приложение вылетит, оно оставит КПК в любом состоянии, в котором оно находилось. Я сделал много приложений типа киосков (полноэкранных) в Windows Mobile, и один из приемов, позволяющих сделать это эффективно, состоит в том, чтобы скрыть строку заголовка WM (верхняя строка с кнопкой запуска Windows), чтобы она не вспыхивала для разделения второй каждый раз, когда вы открываете новую форму. Если приложение дает сбой, панель Windows остается невидимой, пока вы не перезагрузите устройство, что не очень хорошо. По крайней мере, с поворотом экрана пользователь может восстановить его вручную.

Это действительно зависит от платформы, но я бы выбрал WM_WINDOWPOSCHANGED или OnShow. Это не wm_size .. Это не всегда выбрасывается на всех платформах. Casio не запускает событие размера, когда вы ожидаете этого. TDS и Symbol делают.

Несмотря на то, что MSDN - отличный источник информации, помните, что не все ОС созданы одинаковыми. В мире PPC провайдер оборудования может создавать свои собственные ОС, а иногда пропустить или умышленно игнорировать их.

У меня здесь есть платформа (имя скрыто для защиты ... ну, я), которая имеет левую и правую кнопки ... Когда вы нажимаете их, вы ожидаете, что сможете ловить VK_LEFT, VK_RIGHT .. Вы ' буду неправ. Вы на самом деле получаете ';' или же ':'. Как это для удара в штаны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top