CDC::SelectObject()

language/MFC 2016. 5. 7. 21:37
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

CDC::SelectObject()


SelectObject() 함수를 이용해서 펜이나 브러쉬, 폰트, 비트맵 등을 선택한다. 


이 때, 이 함수는 새로운 객체를 불러들임과 동시에 기존에 있던 객체를 리턴값으로 반환한다.



CPaintDC dc(this); // device context for painting


CDC MemDC;

BITMAP bmpInfo;

MemDC.CreateCompatibleDC(&dc);


CBitmap bmp;

CBitmap* pOldBmp = NULL;

bmp.LoadBitmapW(IDB_Test_Image);


bmp.GetBitmap(&bmpInfo);


// 이해하기 어려울 수 있는 아래 코드

pOldBmp = MemDC.SelectObject(&bmp);



SelectObject() 함수를 이용해서 새롭게 선택한 객체를 NewBmp가 아닌 OldBmp에 집어넣는지에 대해서 이해할 때,

이를 단순 대입과정으로 생각한다면 위의 식은 이해하기 어렵다. 


하지만 SelectObject() 함수가 기존값을 리턴값으로 반환하기 때문에 위 코드는 논리적으로 이해가 된다.

또한, 모든 그리기 과정이 끝난 이후 기존 객체를 불러들여야하는데 이 때,


MemDC.SelectObject(pOldBmp);


위 코드를 사용해서 pOldBmp에 저장되어 있던 기존값을 불러들인다.



'language > MFC' 카테고리의 다른 글

CRgn::CreateRectRgn‎  (0) 2016.05.08
CDC::AlphaBlend()  (0) 2016.05.07
CDC::Bitblt()  (0) 2016.05.07
비트맵과 이미지 출력  (0) 2016.05.07
MFC 코드의 기본 구조  (0) 2016.05.07
블로그 이미지

saylin

,