프로그래밍/MFC2011. 4. 27. 16:53
font 객체(텍스트)

void CMfcGDIView::OnDraw(CDC* pDC)
{
 

    CMfcGDIDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
 

    CRect rC;
    GetClientRect(&rC);

 

    //폰트 속성 설정 : dc가 새로운 폰트 선택, 기존 폰트 주소 보관
    CFont font;  //폰트 객체 생성
    font.CreateFont(20, 0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0, "궁서체");
   

    //dc가 새로운 폰트 선택, 기존 폰트 주소를 보관
    CFont *pOldFont = pDC->SelectObject(&font);

   

    //텍스트 출력
    pDC->DrawText("GDI 객체 연습", &rC, DT_CENTER|DT_VCENTER|DT_SINGLELINE);

   

    //dc가 기존폰트 선택
    pDC->SelectObject(pOldFont);
    //새로운 폰트 제거
    font.DeleteObject();

 

}


pen 객체

//새로운 펜 객체 생성

CPen pen;

//펜 속성 설정

pen.CreatePen(PS_SOLID, 5, RGB(0,0,255));

//dc가 새로운 펜 선택, 기존 펜 객체 주소 보관

CPen *pOldpPen = pDC->SelectObject(&pen);

 

//펜을 만들었으면 그려야지 ( 테스트로 타원 그리기 )

pDC->Ellipse(50,20,150,120);

 

//dc가 기존 펜 선택

pDC->SelectObject(pOldPen);

//새로운 펜 제거

pen.DeleteObject();


brush 객체

//새로운 브러시 객체 생성
 CBrush brush;
 //브러시 속성 설정 (요건 여러가지가 있다. - MSDN 참조합시다~)
 brush.CreateSolidBrush(RGB(255,255,0));
 //dc가 새로운 브러시 선택, 기존 브러시 주소 보관
 CBrush *pOldBrush = pDC->SelectObject(&brush);
 //타원 출력
 pDC->Ellipse(50,20,150,120);
 //dc가 기존 브러시 선택
 pDC->SelectObject(pOldBrush);
 //새로운 브러시 제거
 brush.DeleteObject();

 

//참조 : 이런 식으로 적용해서 펜에다가 넣는 것도 가능, 선 굵기가 굵어지면 면이니까 ㅋ

LOGBRUSH lb;

lb.lbColor = RGB(0,0,255);

lb.obStyle = BS_SOLID;

pen.CreatePen(PS_DASH|PS_GEOMETRIC, 5, &lb);



Posted by 건깡