Я получил интересную просьбу от старших апов. Им нужно простое приложение, которое будет отображаться на компьютерах пользователей для отображения времени в нескольких часовых поясах. Это само по себе тривиально; простое окно с таймером, которое будет получать текущее время UTC и преобразовывать его в любое количество часовых поясов, которые они хотят видеть, чтобы обновить текст некоторых меток.
Вот загвоздка, хотя; чтобы удовлетворить все требования, окно никогда не может быть скрыто или скрыто чем-либо еще на рабочем столе. Пользователь будет запускать другие приложения, которые всегда должны быть полностью видны, и в то же время это приложение не может быть закрыто одним из этих окон.
Итак, я думал о реализации этого одним из двух способов:
Как приложение, которое всегда находится сверху, но фон будет полностью прозрачным, а отображение времени будет прозрачным на 50% или чем-то подобным. Перемещение мыши по окну «выделит» отображение времени, удалив их прозрачность и / или добавив непрозрачный высококонтрастный фон. AFAIK это решение не может использовать Windows Aero, потому что ОС основных пользователей будет Windows XP.
Как приложение, которое использует низкоуровневые сообщения Windows для имитации поведения панели задач Windows в режиме «всегда сверху»; он будет пристыкован к верхней части экрана, всегда будет отображаться поверх окон с «нормальным» состоянием и, кроме того, будет регулировать поведение «максимизировать» других окон, чтобы эти окна не перекрывали его при развертывании.
Я действительно понятия не имею, с чего начать реализацию любого из них, но я рискну предположить, что, учитывая ограничение WinXP, второй вариант проще, если вообще возможно. Итак, какое поведение я бы хотел реализовать, чтобы Windows никогда не максимизировала свою форму?