Мне нужно получить Gdi + Region из GraphicPath, не заполняя его, и я не знаю, как это сделать.
Ничья лучше слов, вот что я хочу сделать:
Итак, вот мой код:
// lGraphics and lBrush defined upper...
// Graphic paths
GraphicsPath lGraphicPathEllipse;
GraphicsPath lGraphicPathRectangle;
// Rectangles
Rect lRectEllipse(0, 0, 100, 100);
Rect lRectRectangle(10, -10, 100, 80);
// Add the shapes to the graphic pathes
lGraphicPathEllipse.AddEllipse(lRectEllipse);
lGraphicPathRectangle.AddRectangle(lRectRectangle);
// Create the regions
Region lRegionEllipse(&lGraphicPathEllipse);
Region lRegionRectangle(&lGraphicPathRectangle);
// Exclude the rectangle from the ellipse
lRegionEllipse.Exclude(&lRegionRectangle);
// Draw the ellipse region
lGraphics->FillRegion(&lBrush, &lRegionEllipse);
Проблема в том, что я получаю вот это:
Похоже, что создание Region из GraphicPath автоматически заполняет регион.
Можно ли получить регион из GraphicPath только с контуром? Например, давая ручку или ширину линии?
Я прочитал кое-что о функции GraphicPath Widen, но она не выполняет то, что я хочу.
Странно видеть, что такая простая вещь не может быть сделана.
Или, может быть, я что-то пропустил!
Спасибо за любую помощь, и хорошего дня.
Алекс.
Задача ещё не решена.
Других решений пока нет …