그래픽 개체를 선택하여 디바이스 컨텍스트로 넣기
이 항목은 창의 디바이스 컨텍스트에서 그래픽 개체를 사용하는 데 적용됩니다. 그리기 개체를 만든 후에는 드로잉 개체에 저장된 기본 개체 대신 디바이스 컨텍스트로 선택해야 합니다.
void CNewView::OnDraw(CDC* pDC)
{
CPen penBlack; // Construct it, then initialize
if (penBlack.CreatePen(PS_SOLID, 2, RGB(0, 0, 0)))
{
// Select it into the device context
// Save the old pen at the same time
CPen* pOldPen = pDC->SelectObject(&penBlack);
// Draw with the pen
pDC->MoveTo(20, 20);
pDC->LineTo(40, 40);
// Restore the old pen to the device context
pDC->SelectObject(pOldPen);
}
else
{
// Alert the user that resources are low
}
}
그래픽 개체의 수명
SelectObject에서 반환된 그래픽 개체는 "임시"입니다. 즉, 다음에 프로그램이 유휴 시간을 가져올 때 클래스 CWinApp
의 OnIdle 멤버 함수에 의해 삭제됩니다. 컨트롤을 기본 메시지 루프로 반환하지 않고 단일 함수에서 반환 SelectObject
된 개체를 사용하는 한 아무런 문제가 없습니다.