Подход Microsoft

Вот этот пример наглядно иллюстрирует подход Microsoft.

Ясно ведь, что написанное там никак не оправдывает их. Ведь они сами сделали такую операционную систему, в которой:

  • Окно может завинуть
  • Зависнувшее окно не может быть развёрнуто мгновенно
  • Сам explorer может зависнуть, если будет ждать, пока зависнувшее окно будет разворачиваться

Поэтому, конечно, они ничего теперь не могут с этим поделать, и приходится реализовывать Show Desktop таким, какой он есть.

Надо будет запомнить эту фразу, «Because the alternative is even worse», ага.

Дальше
4 комментария
Drooling 2004

А вот такой вопрос (следуя треду у Рэймонда) — как виндоуменеджер сможет нарисовать окошко с нестандартным бордюром (think media-player). Как насчет окон с меняющейся формой?

Павел Урусов 2004

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

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

Илья Бирман

Нет, ну развлечения-то тоже нужны. Но ведь тут суть в том, что даже если все открытые у тебя окна — стандартные, то всё равно глюк возможен.

Павел Урусов 2004

Илья, вообще я обращался не к тебе, а к предыдущему оратору :)

З. Ы. А что, какой-нибудь Winamp или Sonique начнёт хуже играть, если у него будет стандартное окно?

Shade 2004
  1. «окно зависает» когда оно или не возвращается из обработчика wm_paint, или вообще перестаёт реагировать на какие-либо сообщения. в «оконной» идеологии оно именно так и делается. :)
  1. ну тогда нужно выбирать: либо операционка отрисовывает всё за всех и тогда прощайте все нестандартности, либо всё-таки окошки сами заботятся о своей отрисовке и имеют возможность успешно подвиснуть на этом этапе. не из-за операционки, а из-за своей такой вот работы.
  1. а что, лучше эксплореру плодить потоки, дожидающиеся отрисовки каждого окна, а потом дожидаться их синхронизации и восстанавливать порядок?.. или же всё-таки обойти их всех, послать сообщение на восстановление и спокойно продолжать работу. это же windows. окна и сообщения. рассылаем сообщения окнам, а уж когда они соблаговолят отработать по сообщениями — это их дело.

и вообще, что, лучше как в линуксе — сидеть под тормозными, но трудноубиваемыми иксами?.. :)

Мои книги