PRB: CreateEllipticRgn() and Ellipse() Shapes Not Identical

ID: Q83807


The information in this article applies to:


SYMPTOMS

When CreateEllipticRgn() is used to create a region in the shape of an ellipse and Ellipse() is called with the same parameters to draw an ellipse on the screen, the calculated region does not match the drawn ellipse identically.


CAUSE

Ellipse() includes the lower-right point of the bounding rectangle in its calculations, while the CreateEllipticRgn function excludes the lower-right point.


RESOLUTION

To draw a filled ellipse on the screen that matches an elliptic region, create the region with CreateEllipticRgn() and call FillRgn() to fill the region with the currently selected brush.


STATUS

This behavior is by design.


MORE INFORMATION

The region created by the CreateEllipticRgn() is slightly smaller than the elliptical area created by Ellipse(). Unfortunately, decreasing the width and height of the bounding rectangle by 1 pixel does not solve the problem. Although changing the parameters of the Ellipse() API in this way produces a smaller ellipse, the new ellipse does not match the region created with CreateEllipticRgn().

Additional query words: 3.00 3.10 3.50 4.00 win16sdk


Keywords          : kbNTOS350 kbNTOS351 kbNTOS400 kbSDKWin32 kbWinOS95 
Version           : WINDOWS:3.1,95; winnt:3.5,3.51,4.0
Platform          : WINDOWS winnt 
Issue type        : kbprb 

Last Reviewed: June 16, 1999