Для рисования эллипса необходимо вызвать функцию Ellipse(), которая в wingdi.h описывается следующим образом:
WINGDIAPI BOOL WINAPI Ellipse(HDC, int, int, int, int);Первый аргумент - это, как всегда, контекст устройства. Для того чтобы понять, как определяется эллипс, предлагаю читателю обратиться к рисунку:
Как видно из рисунка, эллипс ограничен прямоугольником. Именно через координаты этого прямоугольника и определяется прорисовываемый эллипс. Второй и третий аргументы - координаты левого верхнего угла прямоугольника (на рисунке обозначены как UpX, UpY), четвертый и пятый аргументы - координаты нижнего правого угла (на рисунке обозначены как LowX, LowY).
Окружность является частным случаем эллипса. И в данном случае, если мы определим прямоугольник, у которого ширина равна высоте, т.е. квадрат, вместо эллипса получим окружность.
Как эллипс, так и окружность после прорисовки заполняются цветом и атрибутами текущей кисти.