Battery Guard for Notebooks - присмотри за своей батарейкой!

Battery Guard for Notebooks - использованные технологии





Размещение поверх всех окон


Окошко индикатора у нас получилось небольшое, поэтому не хотелось бы его прятать под другими окнами, а хотелось бы, наоборот, видеть его всегда.
Поэтому потребуем от окна, чтобы оно всегда располагалось поверх всех окон.

Теоретически, это очень просто:

  TopMost = true;
                         
Однако, практически, даже после установки этого атрибута окно периодически оказывается погребенным под другими.
Не понятно, с чем это связано, возможно, тут виноваты какие-то установленные приложения.

Для борьбы с этим явлением используем функцию BringToFront.
Опытным путем установлено следующее:

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

  // Переносим наверх, т.к. иногда уходит вниз.
  // Делаем это не всегда, т.к. при этом гаснет меню.
  if (DateTime.Now.Ticks / 10000000 - BattGuardMain.m_lMenuShow > 10)
      BringToFront();
                         
m_lMenuShow - время открытия меню.





Alex Konuhoff.






Поиск:

Система Orphus Narod ный каталог сайтов
Rambler's Top100
Яндекс цитирования Проверить тиц pr
Анализ сайта Анализ сайта
Агрегатор новостей Webground
ProtoPlex: программы, форум, рейтинг, рефераты, рассылки!
Сайт управляется системой uCoz