Области (GDI+)
Область — это часть поверхности дисплея. Области могут быть простыми (отдельный прямоугольник) или сложными (сочетание многоугольников и замкнутых кривых). На следующем рисунке показаны две области: одна из них основана на прямоугольнике, а другая — на пути (контуре).
Области часто используются для обрезки и проверки нажатия. Вырезка включает ограничение рисования определенной областью экрана, обычно той частью экрана, которую необходимо обновить. Проверка попадания включает проверку того, находится ли курсор в определенной области экрана при нажатии кнопки мыши.
Вы можете создать область из прямоугольника или из пути. Вы также можете создавать сложные области, объединяя существующие. Класс Region предоставляет следующие методы для объединения регионов: Intersect, Union, Xor, Exclude и Region::Complement.
Пересечение двух областей — это набор всех точек, принадлежащих обеим областям. Объединение — это набор всех точек, принадлежащих одной или другой области либо им обеим. Дополнение области — это набор всех точек, которые не принадлежат этой области. На следующем рисунке показано пересечение и объединение двух регионов на предыдущем рисунке.
Метод Xor , применяемый к паре регионов, создает регион, содержащий все точки, принадлежащие одной или другой области, но не обе. Метод Exclude , применяемый к паре регионов, создает регион, содержащий все точки в первом регионе, которые не находятся во втором регионе. На следующем рисунке показаны регионы, которые возникают в результате применения методов Xor и Exclude к двум регионам, показанным в начале этого раздела.
Для заполнения области требуются объекты Graphics , Brush и Region . Объект Graphics предоставляет метод Graphics::FillRegion , а объект Brush хранит атрибуты заливки, такие как цвет или узор. В следующем примере область заполняется сплошным цветом.
myGraphics.FillRegion(&mySolidBrush, &myRegion);