본문 바로가기
C & C++/MFC 컨트롤

화면에 글씨를 써보자. CFont 사용법

by izen8 2014. 8. 13.
반응형

출처 - 여기여기


// 1. DC 얻기CClientDC      cClientDC(this);
// 2. CFont 선언CFont          cFont;CString        strTitle       =       _T("CFont 예제");
// 3. 폰트생성cFont.CreateFont      ( 20, // 글자높이 10, // 글자너비 0, // 출력각도 0, // 기준 선에서의각도 FW_HEAVY, // 글자굵기 FALSE, // Italic 적용여부 FALSE, // 밑줄적용여부 FALSE, // 취소선적용여부 DEFAULT_CHARSET,        // 문자셋종류 OUT_DEFAULT_PRECIS, // 출력정밀도 CLIP_DEFAULT_PRECIS, // 클리핑정밀도 DEFAULT_QUALITY, // 출력문자품질 DEFAULT_PITCH, // 글꼴Pitch _T("굴림체") // 글꼴                      ); 

// 새로 만든 폰트로 속성을 전환한다.

CFont *p_old_font = dc.SelectObject(&my_font);
// 폰트 색상dc.SetTextColor(m_SelColorLabel);
// 투명도dc.SetBkMode(TRANSPARENT);
// 원하는 위치에 글씨 쓰기dc.DrawText(L"Label Sample", 12, CRect(rect.left, rect.top + 15, rect.Width(), rect.Height()), DT_CENTER | DT_VCENTER | DT_SINGLELINE);
/*

DT_CENTER
: [왼쪽 - 가운데 - 오른쪽] 에서 가운데 위치


DT_VCENTER


: [위 - 가운데 - 아래] 에서 가운데 위치


원하는게 DT_VCENTER인거 같은데.. 이 것의 특징은 DT_SINGLELINE 속성과 함께 써야 합니다.
 


만약 멀티라인인 경우에는 문자열의 길이를 계산해서 수동으로 가운데 맞쳐줘야 합니다.


DT_EXPANDTABS: 탭문자 사용시 사용(탭(8칸) 공백 표현시) - 4칸으로 변경 표현시 DT_TABSTOP | 0x0400 로 대체해서 사용한다.
*/


//dc.DrawText(L"Label Sample", 12, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//dc.TextOut(x - (x/2), y, L"Label Sample  ");
// 이전에 사용하던 폰트로 속성을 복구 한다. dc.SelectObject(p_old_font); 
// 생성된 폰트를 삭제한다. GDI 리소스를 반환하지 않으면 종종 다운되는 // 경우가 있기 때문에 명시적으로 삭제하는게 좋습니다. ^^; my_font.DeleteObject(); 

 


// 문자셋 표현ANSI_CHARSET          ANSIDEFAULT_CHARSET       기본 값SYMBOL_CHARSET         SHIFTJIS_CHARSET       HANGEUL_CHARSET       한글 완성HANGUL_CHARSET        한글 완성GB2312_CHARSET        GB2312CHINESEBIG5_CHARSET   중국어OEM_CHARSET            JOHAB_CHARSET         한글 조합HEBREW_CHARSET        히브리어ARABIC_CHARSET        아라비아어GREEK_CHARSET         그리스어TURKISH_CHARSET       터키어VIETNAMESE_CHARSET    베트남어THAI_CHARSET           EASTEUROPE_CHARSET     RUSSIAN_CHARSET       러시아어MAC_CHARSET           MAC 문자셋

 

BALTIC_CHARSET        발트어

반응형

댓글