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

ID: Q83807


The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK) 3.1
  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT, versions 3.5, 3.51, 4.0
    • Microsoft Windows 95


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
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.