일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- holdem
- 맞고게임
- 온라인게임
- 게임 개발
- 고스톱
- 보드게임
- 서치아이
- 카일레라서버
- 틀린그림 찾기
- 게임 외주
- 맞고
- 옥션해킹
- 프로그램 개발
- 티스토리 초대장
- 윈윈
- 옥션소송
- 카일레라
- 윈윈전략
- 상호링크
- 틀린그림찾기
- 영어단어게임
- 포커
- 써치아이
- 영어단어
- 프로그램 외주
- 홀뎀
- 판매
- Mame32
- MAME
- 포커게임
- Today
- Total
kyuseo의 게임 프로그래밍
GetTextExtentPoint32 함수 사용법 및 주의사항 본문
개요.. |
GetTextExtentPoint32 함수는 글자의 가로, 세로 크기를 얻을때 유용한 함수입니다. 이 함수의 사용법과 주의사항을 알아봅니다.
MSDN 에 등록된 함수의 원형은 다음과 같습니다.
BOOL GetTextExtentPoint( HDC hdc, // handle to DC LPCTSTR lpString, // text string int cbString, // number of characters in string LPSIZE lpSize // string size ); |
실제 사용방법은 아래와 같습니다.
1. 폰트를 생성한다. 2. 폰트를 HDC 에 할당한다. 3. GetTextExtentPoint 함수를 이용하여 원하는 문장의 크기를 구한다. |
이 함수의 주의할 점은 호출이전에 반드시 SelectObject 을 사용해서 폰트를 DC에 설정한 후 사용하시기 바랍니다.
코드 |
1. 폰트를 생성한다.
CFont font[3];
font[0].CreateFont( 20, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, NONANTIALIASED_QUALITY, DEFAULT_PITCH, "굴림" );
font[1].CreateFont( 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, NONANTIALIASED_QUALITY, DEFAULT_PITCH, "굴림체" );
font[2].CreateFont( 7, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, NONANTIALIASED_QUALITY, DEFAULT_PITCH, "돋움체" );
CString str = "가나다abcABCD#!@^&%*";
CSize size; CDC* pDC = GetDC();
2. 폰트를 HDC 에 할당한다.
pDC->SelectObject( &font[0] );
3. GetTextExtentPoint 함수를 이용하여 원하는 문장의 크기를 구한다.
GetTextExtentPoint( pDC->GetSafeHdc(), str, str.GetLength(), &size );
CString str2; str2.Format( "굴림크기= ( %d, %d )", size.cx, size.cy ); AfxMessageBox( str2 );
pDC->SelectObject( &font[1] ); GetTextExtentPoint( pDC->GetSafeHdc(), str, str.GetLength(), &size );
str2.Format( "굴림체크기= ( %d, %d )", size.cx, size.cy ); AfxMessageBox( str2 );
pDC->SelectObject( &font[2] ); GetTextExtentPoint( pDC->GetSafeHdc(), str, str.GetLength(), &size );
str2.Format( "돋움체크기= ( %d, %d )", size.cx, size.cy ); AfxMessageBox( str2 );
ReleaseDC( pDC ); |