вторник, 9 декабря 2008 г.

Вспышка белого

Это перевод The white flash. Автор: Реймонд Чен.
Если у вас есть программа, которая долго не обрабатывает сообщения, но при этом по какой-либо причине нуждается в прорисовке (например, кто-то перетащил окно, закрывающее программу), Windows потеряет терпение с вами и закрасит ваше окно белым.
Или, по-крайней мере, так утверждают некоторые люди. В действительности Windows закрашивает ваше окно фоновой кистью класса окна. Поскольку чаще всего туда вписывают COLOR_WINDOW, а COLOR_WINDOW - это белый цвет на большинстве цветовых схем, то в результат получаются белые области.

Почему вообще нужно закрашивать окно? Почему бы не оставить его как есть?

Ну, изначально так и предполагалось делать, но в результате получается, что предыдущее содержание экрана будет показываться на подвисшем окне. Предположим, что вы сейчас смотрите на окно Проводника, потом вы разворачиваете программу, которая не реагирует на сообщения. Внутри окна этой программы вы видите... изображение окна Проводника. И тогда люди будут пытаться щёлкать по тому, что, как они думают, является окном Проводника, но в действительности это зависшая программа.

Поведение Windows XP для зависшей программы немного другое. Теперь система захватывает пиксели зависшего окна и просто рисует эти пиксели снова, если окно не может само нарисовать себя. Заметьте, что если система не может захватить все пиксели (например, окно было частично закрыто), то тогда те части, что не были захвачены, всё равно будут рисоваться классовой кистью...
Которая обычно белая.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

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