АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Регионы Windows. Отсечение

Читайте также:
  1. Запуск ОС Windows.
  2. Лучшие регионы мира для бердвотчинга
  3. Меню Windows.
  4. Прием и передача сообщений Windows. Формат сообщения Windows. Цикл обработки сообщений.
  5. Регионы Океании
  6. Регионы России, наиболее привлекательные для иностранных инвесторов
  7. Средневековье как этап всемирной истории. Основные цивилизационные регионы
  8. Структура окон Windows.
  9. Этап второй: отсечение

Для повышения эффективности работы Windows оперирует с несколькими

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

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

Обновляемый регион (update region), или, как его тоже иногда называют, недействительный регион (invalid region) — это часть окна, которая требует обновления после возникновения тех или иных событий.

Видимый регион (visible region) — та часть окна, которую в данный момент

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

Регион отсечения (clipping region) ограничивает область, внутри которой

система разрешает отображение графической информации. Когда приложение

получает контекст устройства при помощи функции Begin Paint, система

устанавливает регион отсечения путем пересечения видимого региона и обновляемого региона.

Приложение может ужесточить регион отсечения и ввести дополнительные

ограничения при помощи вызова функции SetWindowRgn, SelectClipPath или SelectClipRgn.

Если при создании окна функцией CreateWindow был использован стиль

WS_CLIPCHILDREN или WS_CLIPSIBLINGS, то это вносит дополнительные правила в определение видимого региона, исключая из него любое дочернее или любые «сестринские» окна. Благодаря этому рисование не затрагивает отображаемые области таких окон.

1. Использование сообщения WM_PAINT.

Обычно приложение рисует что-либо в окне, реагируя на сообщение WM_PAINT.

Система посылает это сообщение окну во всех случаях, требующих перерисовки

клиентской области окна. Например, типичными причинами генерации этого

сообщения могут быть следующие события:

· изменились размеры или местоположение окна;

· клиентская область была частично или полностью закрыта другим окном или выпадающим меню, а теперь закрывающий объект исчез;

· приложение вызвало одну из функций работы с полосами прокрутки.

Кроме того, приложение может само инициировать посылку сообщения

WM_PAINT посредством вызова одной из функций, InvalidateRect, InvalidateRgn или UpdateWindow.

Функция UpdateWindow посылает сообщение WM_PAINT непосредственно в

оконную процедуру, минуя очередь приложения.

Работа с сообщением WM_PAINT требует от разработчика понимания общей

парадигмы отображения графики на экране, которая принята в системах семейства.

Windows. Желательно структурировать программу таким образом, чтобы

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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)