관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

CreateFont(A) 본문

API 관련/Win32 API 함수

CreateFont(A)

님투 2007. 11. 8. 22:42
반응형

CreateFont(A)

논리 폰트를 작성합니다.

HFONT CreateFontA(
    int   nHeight,           // 문자 셀 또는 문자의 높이
    int   nWidth,            // 평균 문자폭
    int   nEscapement,       // 문자 보내의 방향과X축과의 각도
    int   nOrientation,      // baseline와X축과의 각도
    int   nWeight,           // 폰트의 굵기
    DWORD fdwItalic,         // 이탤릭체 지정
    DWORD fdwUnderline,      // 밑줄  지정
    DWORD fdwStrikeOut,      // 부정선 지정
    DWORD fdwCharSet,        // 캐릭터 세트
    DWORD fdwOutPrecision,   // 출력 정도
    DWORD fdwClipPrecision,  // 클리핑의 정도
    DWORD fdwQuality,        // 출력 품질
    DWORD fdwPitchAndFamily, // 핏치와 패밀리
    PCTSTR pszFaceName       // 폰트명
);

GDI32.DLL

인수

nHeight

폰트의 문자 셀 또는 문자의 높이를 논리 단위로 지정합니다.

정수를 지정했을 경우는 문자 셀의 높이로서 해석됩니다. 0 (을)를 지정하면 디폴트의 높이로서 해석됩니다.음수를 지정하면 그 절대치가 문자의 높이(문자 셀의 높이로부터 내부 leading (엑센트 기호등을 (위해)때문에의 스페이스) 의 높이를 당긴 것)로서 해석됩니다.폰트맙파는, 요구된 사이즈를 넘지 않는 최대의 폰트를 찾습니다.

nWidth

폰트의 평균 문자폭을 논리 단위로 지정합니다.

0 (을)를 지정하면, nHeight 파라미터로 지정한 폰트의 높이에 맞은 폭이 자동적으로 지정됩니다.

nEscapement

문자 보내의 방향과 X 축과의 각도를,10 분의 1 번단위로 지정합니다.문자 보내의 방향은, 텍스트의 열의 baseline와 평행입니다.

Windows NT/2000/XP: GM_ADVANCED 그래픽 모드에서는, nEscapement 파라미터와 nOrientation 파라미터를 개개로 설정할 수 있습니다. GM_COMPATIBLE 그래픽 모드에서는, nEscapement 파라미터는 문자 보내의 방향과 문자의 방향의 양쪽 모두를 정의합니다. nEscapement 파라미터와 nOrientation 파라미터의 값은 같게 해 주세요.

Windows 95/98/Me: nEscapement 파라미터는 문자 보내의 방향과 문자의 방향의 양쪽 모두를 정의합니다.nEscapement 파라미터와 nOrientation 파라미터의 값은 같게 해 주세요.

nOrientation

각 문자의 baseline와 X 축과의 각도를, 10 분의 1 번단위로 지정합니다.

nWeight

폰트의 굵기를, 0 (으)로부터 1000 까지의 값으로 지정합니다.0 (을)를 지정하면, 디폴트의 굵기가 선택됩니다.

VC++그럼 다음의 정수명이 정의되고 있습니다.

정수명
FW_DONTCARE 0
FW_THIN 100
FW_EXTRALIGHT, FW_ULTRALIGHT 200
FW_LIGHT 300
FW_NORMAL, FW_REGULAR 400
FW_MEDIUM 500
FW_SEMIBOLD, FW_DEMIBOLD 600
FW_BOLD 700
FW_EXTRABOLD, FW_ULTRABOLD 800
FW_HEAVY, FW_BLACK 900
fdwItalic

이탤릭체로 할지를 지정합니다. 1 (TRUE) (을)를 지정하면 이탤릭체가 됩니다. 0 (FALSE) (을)를 지정하면 이탤릭체가 되지 않습니다.

fdwUnderline

밑줄 첨부의 폰트를 선택할지를 지정합니다. 1 (TRUE) (을)를 지정하면 밑줄을 붙일 수 있습니다. 0 (FALSE) (을)를 지정하면 밑줄을 붙일 수 없습니다.

fdwStrikeOut

부정선 폰트를 선택할지를 지정합니다. 1 (TRUE) (을)를 지정하면 부정선을 붙일 수 있습니다. 0 (FALSE) (을)를 지정하면 부정선을 붙일 수 없습니다.

fdwCharSet

캐릭터 세트의 값을 지정합니다.대표적인 것을 이하에 나타냅니다

캐릭터 세트
ANSI_CHARSET (Windows 캐릭터 세트) 0
DEFAULT_CHARSET (지정 없음) 1
SYMBOL_CHARSET 2
SHIFTJIS_CHARSET (시프트JIS캐릭터 세트) 128
OEM_CHARSET (OEM 캐릭터 세트) 255
fdwOutPrecision

출력 정도를 지정합니다.다음의 값의 어느쪽이든을 지정합니다.

의미
0 (OUT_DEFAULT_PRECIS)

디폴트의 동작에 맡깁니다.

1 (OUT_STRING_PRECIS)

사용하지 않습니다.(다만, 라스터 폰트가 열거될 때는 돌려주어집니다.)

2 (OUT_CHARACTER_PRECIS)

사용하지 않습니다.

3 (OUT_STROKE_PRECIS)

Windows NT/2000/XP: 사용하지 않습니다.(다만,TrueType 폰트나 그 외의 아웃라인 베이스의 폰트, vector font(vector font)가 열거될 때는 돌려주어집니다.)

Windows 95/98/Me: vector font를 선택하도록 지시합니다.(TrueType 폰트나 vector font가 열거될 때도 돌려주어집니다.)

4 (OUT_TT_PRECIS)

같은 이름의 폰트가 다수 있었을 경우는,TrueType 폰트를 선택하도록 지시합니다.

5 (OUT_DEVICE_PRECIS)

같은 이름의 폰트가 다수 있었을 경우는, 디바이스 폰트를 선택하도록 지시합니다.

6 (OUT_RASTER_PRECIS)

같은 이름의 폰트가 다수 있었을 경우는, 라스터 폰트를 선택하도록 지시합니다.

7 (OUT_TT_ONLY_PRECIS)

TrueType 폰트만을 선택하도록 지시합니다.시스템에 TrueType 폰트가 짜넣어지지 않을 때는, 디폴트의 동작이 됩니다.

8 (OUT_OUTLINE_PRECIS)

Windows NT/2000/XP: TrueType 폰트나 그 외의 아웃라인 베이스의 폰트를 선택하도록 지시합니다.

Windows 95/98/Me: 사용하지 않습니다.

fdwClipPrecision

클리핑의 정도를 지정합니다.이 값은, 문자의 일부가 클리핑 영역의 밖에는 봐 나왔을 때에, 그 문자를 클립 하는 방법을 정의합니다.다음의 값의 언젠가, 또는 조합을 지정합니다.

의미
0 (CLIP_DEFAULT_PRECIS)

디폴트의 동작에 맡깁니다.

1 (CLIP_CHARACTER_PRECIS)

사용하지 않습니다.

2 (CLIP_STROKE_PRECIS)

사용하지 않습니다.(다만, 라스터 폰트, vector font,TrueType 폰트가 열거될 때는 돌려주어집니다.)

15 (CLIP_MASK)

사용하지 않습니다.

16 (CLIP_LH_ANGLES)

좌표계가 오른손 좌표계나 왼손 좌표계 등에 의해서, 모든 폰트의 회전 방향을 결정하도록(듯이) 합니다.이 값을 지정하지 않는 경우는, 디바이스 폰트는 항상 반시계회전에, 그 외의 폰트는 좌표계의 향해 따라서 회전합니다.

32 (CLIP_TT_ALWAYS)

사용하지 않습니다.

128 (CLIP_EMBEDDED)

독해 전용의 매입 폰트

fdwQuality

출력 품질을 지정합니다.이 값은, GDI 하지만, 논리 폰트의 속성과 실제의 물리 폰트의 속성을 어느 정도까지 일치시키는지를 정의하는 것입니다.

의미
0 (DEFAULT_QUALITY)

폰트의 문자 품질은 중시되지 않습니다.

1 (DRAFT_QUALITY)

폰트의 문자 품질은 PROOF_QUALITY (을)를 사용했을 때(정도)만큼은 중시되지 않습니다.

2 (PROOF_QUALITY)

폰트의 문자 품질이, 논리 폰트의 속성을 정확하게 일치시키는 것보다 중시됩니다.

fdwPitchAndFamily

폰트의 핏치와 패밀리를 지정합니다.핏치를 지정하는 값과 폰트 패밀리를 지정하는 값을 하나씩 OR 연산자“|”(으)로 조합해 지정합니다.

핏치를 지정하는데 이하의 값의 어느쪽이든을 지정합니다.

의미
0 (DEFAULT_PITCH) 디폴트
1 (FIXED_PITCH) 고정폭
2 (VARIABLE_PITCH) 가변폭

폰트 패밀리를 지정하는데 이하의 값의 어느쪽이든을 지정합니다.

의미
0 (FF_DONTCARE)

일반적인 패밀리를 지정.폰트에 관한 정보가 존재하지 않는 경우나, 중요하지 않을 때에 지정된다.

16 (FF_ROMAN)

대사(H,I 등의 상하에 있는 수염 장식)이 있는 proportional font를 지정. Times New Roman 등.

32 (FF_SWISS)

대사(H,I 등의 상하에 있는 수염 장식)이 없는 proportional font를 지정. Arial 등.

48 (FF_MODERN)

대사(H,I 등의 상하에 있는 수염 장식)이 있다, 또는 대사가 없는 물건 스페이스 폰트를 지정. Pica, Elite, Courier New 등.

64 (FF_SCRIPT)

자필풍의 디자인의 폰트를 지정. Script, Cursive 등.

80 (FF_DECORATIVE)

장식 폰트를 지정. Old English 등.

pszFaceName

폰트의 타이프페이스명을 나타내는 문자열의 주소를 지정합니다.

0 (NULL) (이)나 공문자열의 주소를 지정하면, 다른 멤버로 지정된 속성에 맞는 폰트중에서 최초로 찾아낼 수 있었던 폰트가 선택됩니다.

반환값

성공하면 작성된 논리 폰트의 핸들이 돌아갑니다.

실패하면 0 (NULL) 하지만 돌아갑니다.

Windows NT/2000/XP: 확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.

해설

폰트가 불필요하게 되었을 경우에는, DeleteObject 함수로 삭제하지 않으면 안됩니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

CreateMenu  (0) 2007.11.08
CreateFontIndirect(A)  (0) 2007.11.08
CreateFileMapping(A)  (0) 2007.11.08
CreateFile(A)  (0) 2007.11.08
CreateEllipticRgn  (0) 2007.11.08
Comments