본문 바로가기
C & C++/MFC Media

쓸만한 Rect 관련 API 함수

by izen8 2011. 3. 27.
반응형

쓸만한 Rect 관련 API 함수

RECT 구조체를 교집합, 이동, 증가하기 등을 처리할 경우 직접 코드를 작성하여도 좋지만, 이미 제공되는 함수도 쓸만한 것들이 많이 있습니다.
BOOL UnionRect(
LPRECT lprcDst, // destination rectangle
CONST RECT *lprcSrc1, // first rectangle
CONST RECT *lprcSrc2 // second rectangle );

두개의 사각형으로 하나의 사각형으로 합한다.
면적이 0이면 FALSE 아니면 TRUE 를 리턴한다.
BOOL InflateRect(
LPRECT lprc, // rectangle
int dx, // amount to adjust width
int dy // amount to adjust height );

dx 만큼 좌측은 빼주고 우측을 더해주어 전체 가로면적을 Width + dx*2 만큼 증가하고
dy 만큼 위쪽은 빼주고 아래쪽을 더해주어 전체 세로면적을 Height + dy*2 만큼 증가한다.
 성공시 TRUE, 실패시 FALSE 을 리턴한다.


BOOL IntersectRect(
LPRECT lprcDst, // intersection buffer
CONST RECT *lprcSrc1, // first rectangle
CONST RECT *lprcSrc2 // second rectangle );

두개의 사각형의 교집합을 구한다.
교집합이 없다면 FALSE 을 있다면 TRUE 을 리턴한다.
BOOL OffsetRect(
LPRECT lprc, // rectangle
int dx, // horizontal offset
int dy // vertical offset );

사각형을 dx, dy 만큼 이동시킨다.
성공시 TRUE, 실패시 FALSE 을 리턴한다.
CRect 에도 비슷한 함수들이 존재합니다.
    CRect rc1( 10, 10, 100, 100 );
    CRect rc2( 20, 20, 200, 200 );
    CRect rc3;
    rc3.UnionRect( rc1, rc2 );
    ASSERT( rc3 == CRect( 10, 10, 200, 200 ) );

http://winapi.co.kr/win32lec/win32lec.htm

 

반응형

댓글