Эллипс создается при помощи функций CreateEl 1 ipticRgn( int nLeft. int nTop, int nRight, int nBottom) и CreateEl 1 ipticRgnlndirect(RECT FAR* lpRect).

Функция CombineRegion(HRGN hRes. HRGN hl. HRGN h2. int Comb) формирует регион hRes путем объединения регионов hl и h2 с использованием одной из возможных операций, которая задается значением параметра Comb. Константы, задающие способ комбинирования, приведены в следующем списке: О RGN_AND - пересечение (hRes состоит из точек, принадлежащих и hl, и п2). О RGN_0R - объединение (hRes состоит из точек, принадлежащих hl или п2). О RGN_X0R - из объединения удалены точки, входящие одновременно в hl и п2. О RGNJ3IFF - hRes состоит из точек региона hl, находящихся вне п2. О RGN_C0PY - hRes совпадает с hl.

В переменную Res заносится одна из констант - ERROR, NULLREGION, SIMPLEREGION или COMPLEXREGION.

Для облегчения комбинирования областей в файле windowsx.h определены макрокоманды CopyRgn(hRes.h1), IntersectRgn(), Uni onRgn(hRes.h1.h2),XorRgn(hRes.hi.h2), предназначенные для копирования, пересечения, объединения и вычитания областей.

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

Создание и применение регионов

При помощи рассмотренных функций будет разработана программа, которая создает окно, два экземпляра которого показаны на рис. 20.3.

Окно имитирует переднюю панель прибора, поэтому его углы скруглены при помощи региона окна, а область заголовка и рамка закрыты фоновым рисунком. Область заголовка закрыта фоном, но она все равно функционирует, как обычный заголовок. С его помощью окно можно перемещать (на рисунке изображены два экземпляра окна, сдвинутые при помощи мыши) или свернуть, восстановить и уничтожить окно щелчком по закрытой панели области заголовка. Для уничтожения окна необходимо щелкнуть по винту в правом верхнем углу.

В окне размещены статический рисунок (индикатор прибора) и специализированный орган управления, реализованный в виде тумблера с лампочкой индикации питания. Слева и справа от тумблера размещены два неподсвеченных сенсорных региона. В правом окне изображен вид органа управления после щелчка по первому региону, а в левом - после щелчка по второму.


⇐ Предыдущая| |Следующая ⇒