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 |