PRB: CreateEllipticRgn() and Ellipse() Shapes Not Identical (83807)
The information in this article applies to:
- Microsoft Windows Software Development Kit (SDK) 3.1
- Microsoft Win32 Application Programming Interface (API), when used with:
- Microsoft Windows NT Server 3.5
- Microsoft Windows NT Server 3.51
- Microsoft Windows NT Server 4.0
- Microsoft Windows NT Workstation 3.5
- Microsoft Windows NT Workstation 3.51
- Microsoft Windows NT Workstation 4.0
This article was previously published under Q83807 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().
Modification Type: | Major | Last Reviewed: | 12/1/2003 |
---|
Keywords: | kbprb KB83807 |
---|
|