Share via


CPoint 클래스

Windows POINT 구조체와 유사합니다.

구문

class CPoint : public tagPOINT

멤버

공용 생성자

속성 설명
CPoint::CPoint CPoint를 생성합니다.

공용 메서드

이름 설명
CPoint::Offset 의 멤버 및 y 값에 CPoint값을 x 추가합니다.

Public 연산자

이름 설명
CPoint::operator - a와 a CPointSIZE의 차이 또는 부정 CSizePOINT또는 두 POINTs 사이의 차이 또는 음SIZE수로 오프셋을 반환합니다.
CPoint::operator != POINTs 사이의 같지 않음을 확인합니다.
CPoint::operator + 에 의한 a 및 a CPointSIZE 또는 또는 POINT오프셋의 합계를 CRect 반환합니다 SIZE.
CPoint::operator += 또는 POINT.를 CPoint 추가하여 SIZE 오프셋
CPoint::operator -= 또는 을 CPoint 빼서 오프셋합니다SIZE.POINT
CPoint::operator == 두 s 사이의 같음을 POINT확인합니다.

설명

또한 조작 CPointPOINT 구조를 위한 멤버 함수도 포함됩니다.

CPoint 구조체가 사용되는 모든 위치에서 개체를 POINT 사용할 수 있습니다. 개체 또는 SIZE 구조체와 SIZECSize 상호 작용하는 이 클래스의 연산자는 두 개체를 서로 교환할 수 있기 때문에 허용합니다.

참고 항목

이 클래스는 구조체 tagPOINT 에서 파생됩니다. (이름은 tagPOINT 구조체에 덜 일반적으로 사용되는 이름 POINT 입니다.) 즉, x 구조체의 POINT 데이터 멤버 및 y에 액세스할 수 있는 데이터 멤버CPoint입니다.

참고 항목

공유 유틸리티 클래스(예: CPoint공유 클래스)에 대한 자세한 내용은 공유 클래스를 참조 하세요.

상속 계층 구조

tagPOINT

CPoint

요구 사항

헤더atltypes.h:

CPoint::CPoint

CPoint 개체를 생성합니다.

CPoint() throw();
CPoint(int initX, int initY) throw();
CPoint(POINT initPt) throw();
CPoint(SIZE initSize) throw();
CPoint(LPARAM dwPoint) throw();

매개 변수

initX
xCPoint 멤버 값을 지정합니다.

initY
yCPoint 멤버 값을 지정합니다.

initPt
POINT 구조체 또는 CPoint 초기화하는 데 사용되는 값을 지정하는 CPoint구조체입니다.

initSize
SIZE 구조체 또는 CSize 초기화하는 데 사용되는 값을 지정하는 CPoint구조체입니다.

dwPoint
멤버를 x 하위 단어 dwPoint 로 설정하고 멤버를 y 상위 단어 dwPoint로 설정합니다.

설명

인수가 지정되지 않으면 xy 멤버가 0으로 설정됩니다.

예시

CPoint   ptTopLeft(0, 0);
// works from a POINT, too

POINT   ptHere;
ptHere.x = 35;
ptHere.y = 95;

CPoint   ptMFCHere(ptHere);

// works from a SIZE
SIZE   sHowBig;
sHowBig.cx = 300;
sHowBig.cy = 10;

CPoint ptMFCBig(sHowBig);
// or from a DWORD

DWORD   dwSize;
dwSize = MAKELONG(35, 95);

CPoint ptFromDouble(dwSize);
ASSERT(ptFromDouble == ptMFCHere);

CPoint::Offset

의 멤버 및 y 값에 CPoint값을 x 추가합니다.

void Offset(int xOffset, int yOffset) throw();
void Offset(POINT point) throw();
void Offset(SIZE size) throw();

매개 변수

xOffset
의 멤버CPoint를 오프셋 x 할 크기를 지정합니다.

yOffset
의 멤버CPoint를 오프셋 y 할 크기를 지정합니다.

point
오프셋할 크기(POINT 또는 CPoint)를 지정합니다 CPoint.

size
오프셋할 크기(SIZE 또는 CSize)를 지정합니다 CPoint.

예시

CPoint   ptStart(100, 100);
ptStart.Offset(35, 35);

CPoint   ptResult(135, 135);
ASSERT(ptStart == ptResult);

// works with POINT, too

ptStart = CPoint(100, 100);
POINT pt;

pt.x = 35;
pt.y = 35;

ptStart.Offset(pt);

ASSERT(ptStart == ptResult);

// works with SIZE, too

ptStart = CPoint(100, 100);
SIZE size;

size.cx = 35;
size.cy = 35;

ptStart.Offset(size);

ASSERT(ptStart == ptResult);   

CPoint::operator ==

두 s 사이의 같음을 POINT확인합니다.

BOOL operator==(POINT point) const throw();

매개 변수

point
구조체 또는 CPoint 개체를 POINT 포함합니다.

Return Value

s가 POINT같으면 0이 아니고, 그렇지 않으면 0입니다.

예시

CPoint ptFirst(256, 128);
CPoint ptTest(256, 128);

ASSERT(ptFirst == ptTest);

// works with POINTs, too

POINT pt;
pt.x = 256;
pt.y = 128;

ASSERT(ptTest == pt);

// note that pt == ptTest isn't correct!   

CPoint::operator !=

POINTs 사이의 같지 않음을 확인합니다.

BOOL operator!=(POINT point) const throw();

매개 변수

point
구조체 또는 CPoint 개체를 POINT 포함합니다.

Return Value

0이 POINT아니면 0이 아니고, 그렇지 않으면 0입니다.

예시

CPoint ptFirst(256, 128);
CPoint ptTest(111, 333);

ASSERT(ptFirst != ptTest);

// works with POINTs, too

POINT pt;
pt.x = 333;
pt.y = 111;

ASSERT(ptTest != pt);

// note that pt != ptTest isn't correct!   

CPoint::operator +=

첫 번째 오버로드는 .에 a SIZECPoint추가합니다.

void operator+=(SIZE size) throw();
void operator+=(POINT point) throw();

매개 변수

size
구조체 또는 CSize 개체를 SIZE 포함합니다.

point
구조체 또는 CPoint 개체를 POINT 포함합니다.

설명

두 번째 오버로드는 에 a POINTCPoint추가합니다.

두 경우 모두 오른쪽 피연산자의 (또는cx) 멤버를 멤버에 추가하고 x 오른쪽 피연산 x 자의 CPoint (또는cy) 멤버를 해당 멤버CPointy 추가하여 y 추가합니다.

예를 들어 변수를 포함하는 CPoint(30, 40) 변수에 추가 CPoint(5, -7) 하면 변수CPoint(35, 33)가 .로 변경됩니다.

예시

CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);

ptStart += szOffset;

CPoint   ptResult(135, 135);

ASSERT(ptResult == ptStart);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptStart += sz;

ASSERT(ptResult == ptStart);   

CPoint::operator -=

첫 번째 오버로드는 SIZECPoint.

void operator-=(SIZE size) throw();
void operator-=(POINT point) throw();

매개 변수

size
구조체 또는 CSize 개체를 SIZE 포함합니다.

point
구조체 또는 CPoint 개체를 POINT 포함합니다.

설명

두 번째 오버로드는 POINTCPoint.

두 경우 모두 오른쪽 피연산자의 멤버를 빼 x 고 오른쪽 피연산자의 (또는cycx) 멤버 CPoint 에서 xy 오른쪽 피연산자의 멤버CPoint를 빼 y 서 빼서 빼기를 수행합니다.

예를 들어 변수를 포함하는 변수에서 빼 CPoint(5, -7) 면 변수CPoint(25, 47)가 .로 변경됩니다CPoint(30, 40).

예시

CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);

ptStart -= szOffset;

CPoint   ptResult(65, 65);

ASSERT(ptResult == ptStart);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptStart -= sz;

ASSERT(ptResult == ptStart);   

CPoint::operator +

이 연산자를 사용하여 개체 또는 개체로 오프셋 CPoint 하거나 CSizeCRectCPoint.CPoint

CPoint operator+(SIZE size) const throw();
CPoint operator+(POINT point) const throw();
CRect operator+(const RECT* lpRect) const throw();

매개 변수

size
구조체 또는 CSize 개체를 SIZE 포함합니다.

point
구조체 또는 CPoint 개체를 POINT 포함합니다.

lpRect
구조체 또는 CRect 개체에 대한 포인터를 RECT 포함합니다.

Return Value

CPoint 의해 SIZE오프셋되는 A, CPoint 오프셋을 POINT통해 오프셋되는 값 또는 CRect 오프셋에 의한 오프셋입니다 POINT.

설명

예를 들어 처음 두 오버로드 중 하나를 사용하여 점 CPoint(15, 5) 또는 크기 CSize(15, 5) 로 점을 CPoint(25, -19) 오프셋하면 값CPoint(40, -14)이 반환됩니다.

에 a CRectPOINT 추가하면 다음에 지정된 값과 y 오프셋 x 이 반환 CRect 됩니다POINT. 예를 들어 마지막 오버로드를 사용하여 지점으로 사각형 CRect(125, 219, 325, 419) 을 오프셋하면 반환됩니다CRect(150, 200, 350, 400).CPoint(25, -19)

예시

CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);
CPoint   ptEnd;

ptEnd = ptStart + szOffset;

CPoint   ptResult(135, 135);

ASSERT(ptResult == ptEnd);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptEnd = ptStart + sz;

ASSERT(ptResult == ptEnd);   

CPoint::operator -

처음 두 오버로드 CPointCSizeCPoint중 하나를 사용하여 .

CSize operator-(POINT point) const throw();
CPoint operator-(SIZE size) const throw();
CRect operator-(const RECT* lpRect) const throw();
CPoint operator-() const throw();

매개 변수

point
POINT 구조체 또는 CPoint 개체입니다.

size
SIZE 구조체 또는 CSize 개체입니다.

lpRect
구조체 또는 개체에 대한 RECT 포인터입니다 CRect .

Return Value

A CSize 는 두 POINTs 사이의 차이, 부정에 의해 SIZE오프셋되는 것, CPointCRect 부정으로 오프셋되는 것, 부정에 의해 POINT오프셋되는 것 또는 CPoint 부정POINT인 2의 차이입니다.

설명

세 번째 오버로드는 을 부정CPoint하여 오프셋합니다CRect. 마지막으로 단항 연산자를 사용하여 부정 CPoint합니다.

예를 들어 첫 번째 오버로드를 사용하여 두 점 CPoint(25, -19)CPoint(15, 5) 반환 사이의 차이를 찾습니다 CSize(10, -24).

에서 빼는 CSize 것은 위와 동일한 계산을 수행하지만 개체가 CPoint 아닌 개체를 CSize 반환 CPoint 합니다. 예를 들어 두 번째 오버로드를 사용하여 점 CPoint(25, -19) 과 크기 CSize(15, 5) 간의 차이를 찾으면 반환됩니다 CPoint(10, -24).

직사각형 POINT 을 빼면 사각형 오프셋이 에 지정된 값 및 y 음수로 x 반환됩니다POINT. 예를 들어 마지막 오버로드를 사용하여 점 CPoint(25, -19) 이 사각형을 오프셋 CRect(125, 200, 325, 400) 하면 반환됩니다CRect(100, 219, 300, 419).

단항 연산자를 POINT사용하여 . 예를 들어 단항 연산자를 사용하여 점 CPoint(25, -19) 이 반환됩니다 CPoint(-25, 19).

예시

// example for CPoint subtraction
CPoint   ptStart(100, 100);
CSize   szOffset(35, 35);
CPoint   ptEnd;

ptEnd = ptStart - szOffset;

CPoint   ptResult(65, 65);

ASSERT(ptResult == ptEnd);

// also works on SIZE

ptStart = CPoint(100, 100);

SIZE   sz;
sz.cx = 35;
sz.cy = 35;

ptEnd = ptStart - sz;

ASSERT(ptResult == ptEnd);

// example for CPoint unary operator
CPoint   pt(35, 35);
pt = -pt;

CPoint ptNeg(-35, -35);
ASSERT(pt == ptNeg);   

참고 항목

MFC 샘플 MDI
계층 구조 차트
POINT 구조
CRect 클래스
CSize 클래스