Используйте картинку, чтобы объяснить проблему:
//RECT
hPen = CreatePen(PS_SOLID, 1, RGB(255, 100, 0));
SelectObject(hdc, hPen);
Rectangle(hdc, 10, 10, 130, 130);
//Ellipse
hBrush = CreateSolidBrush(RGB(255, 0, 0));
HRGN hTemp = CreateEllipticRgn(10, 10, 130, 130);
FrameRgn(hdc, hTemp, hBrush, 1, 1);
С Функция прямоугольника , это указывает:
Нарисованный прямоугольник исключает нижний и правый края.
Если используется перо PS_NULL, размеры прямоугольника будут на 1 пиксель меньше по высоте и на 1 пиксель меньше по ширине .
Начиная с CreateEllipticRgn , он указывает:
Ограничительный прямоугольник определяет размер, форму и ориентацию области: Длинные стороны прямоугольника определяют длину большой оси эллипса; короткие стороны определяют длину малой оси эллипса; , а центр прямоугольника определяет пересечение большой и малой осей.
Из результатов теста длина и ширина эллипс исключает нижний и правый края.