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

Last reviewed: November 2, 1995
Article ID: Q83807
The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK) for Windows versions 3.1 and 3.0
  • Microsoft Win32 Application Programming Interface (API) included with:

        - Microsoft Windows NT versions 3.5 and 3.51
        - Microsoft Windows 95 version 4.0
    

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.

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 reference words: 3.00 3.10 3.50 4.00 95
KBCategory: kbgraphic kbprb
KBSubcategory: GdiDrw


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: November 2, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.