// 변수들
UINT : unsigned int
WORD : unsigned short
// 함수에서 쓰는 것들
SetMapMode
_ MM_TEXT : X축은 왼쪽에서 오른쪽으로 커지고, Y축은 아래로 내려갈 때 커집니다
DrawText : 문자를 출력할 때 어느 영역을 정하고 이영역에 출력하는 함수
값 |
내용 |
DT_TOP
DT_BOTTOM
DT_LEFT
DT_RIGHT |
설정된 lpRect영역에 상단으로(DT_TOP) 하단으로(DT_BOTTOM) 좌측으로(DT_LEFt)우측으로(DT_RIGHT) 문자를 출력 한다. DT_SINGLELINE가 함께 지정되어 있어야 한다. |
DT_CENTER |
설정된 영역의 가로중앙에 정렬시킨다 |
DT_VCENTER |
설정된 영역의 세로 중앙에 정렬 시킨다. |
|
|
DT_EXPANDTABS |
문자열에 탭이 포함되어 있을 때 공백으로 띄어 준다.
기본폭은 8이다. |
DT_CALCRECT |
텍스트가 출력할 사각형의 영역을 계산한다. 이때 문자는 출력되지 않는다. |
DT_EXTERNALLEADING |
문자의 높이를 계산할 때 extenal leading sapce를 호함시킨다. |
DT_SINGLELINE |
행바꿈과 라인 피드를 무지하고 한줄로 출력한다. |
DT_NOCLIP |
클리핑 없이 문자를 출력한다. |
DT_NOPREFIX |
&문자를 표식어로 상용하지 않는다. 일반적으로& 코드는 출력하지 않고 다음 문자에 밑줄을 그린다. |
DT_TABSTOP |
Flat 상위 8비트에 값을 넣어서 탭간격을 변화시킨다. |
DT_WORDBREAK |
문자열이 영역밖으로 출력되면 개행하여 출력한다. |
SetBkMode
- TRANSPARENT : 투명하게 하는 것으로 글자 뒤로 배경이 보이게 한다
- OPAQUE : 불투명한 배경을사용 뒷배경이 지워진다
CreateFont
▶fnWeight : 폰트의 무게를 0~1000까지의 값으로 설정한다. 쉽게 말해서 폰트의 두께를 설정한다. 0~1000까지의 값을 지정할 수 있으며 보통 굵기인 FW_NORMAL과 굵은 문자인 FW_BOLD만 사용된다.
값 |
두께 |
FW_DONTCARE |
0 |
FW_THIN |
100 |
FW_EXTRALIGHT |
200 |
FW_ULTRALIGHT |
200 |
FW_LIGHT |
300 |
FW_NORMAL |
400 |
FW_REGULAR |
400 |
FW_MEDIUM |
500 |
FW_SEMIBOLD |
600 |
FW_DEMIBOLD |
600 |
FW_BOLD |
700 |
FW_EXTRABOLD |
800 |
FW_ULTRABOLD |
800 |
FW_HEAVY |
900 |
FW_BLACK |
900 |
▶fdwCharSet : 문자 셋을 설정한다. 폰트 매퍼가 논리 폰트를 생성할 때 참조하는 중요한 값이므로 폰트의 타입 페이스를 지정할 경우 반드시 해당 폰트의 문자셋과 일치하도록 써 주어야 한다.
문자셋 |
실제값 |
설명 |
ANSI_CHARSET |
0 |
윈도우즈에서 사용하는 문자셋 |
DEFAULT_CHARSET |
1 |
이름과 크기만으로 폰트를 선택하도록 한다. 만약 이 문자셋으로 폰트를 생성할 때 지정한 폰트가 없으면 임의의 문자셋으로 대체될 수도 있기 때문에 원하지 않는 폰트가 생성될 수도 있다. |
SYMBOL_CHARSET |
2 |
|
OEM_CHARSET |
255 |
운영체제에 종속적인 문자셋 |
HANGUL_CHARSET |
129 |
HANGUEL_CHARSET으로 중복 정의되어 있다. |
BALTIC_CHARSET |
186 |
|
CHINESEBIG5_CHARSET |
136 |
|
EASTEUROPE_CHARSET |
238 |
|
GB2312_CHARSET |
134 |
|
GREEK_CHARSET |
161 |
|
MAC_CHARSET |
77 |
|
RUSSIAN_CHARSET |
204 |
|
SHIFTJIS_CHARSET |
128 |
|
TURKISH_CHARSET |
162 |
|
JOHAB_CHARSET |
130 |
한글 윈도우즈에서만 사용 가능 |
HEBREW_CHARSET |
177 |
중앙 아시아 윈도우즈에서만 사용 가능 |
ARABIC_CHARSET |
178 |
중앙 아시아 윈도우즈에서만 사용 가능 |
THAI_CHARSET |
222 |
타이 윈도우즈에서만 사용 가능 |
▶fdwOutputPrecision : 출력 정확도를 설정한다. 같은 이름의 폰트가 여러 벌 있을 경우 폰트 매퍼가 어떤 폰트를 선택할 것인가를 지정한다.
값 |
설명 |
OUT_CHARACTER_PRECIS |
사용되지 않는 값이다. |
OUT_DEFAULT_PRECIS |
폰트 매퍼의 디폴트 동작을 정의한다. |
OUT_DEVICE_PRECIS |
디바이스 폰트를 선택하도록 한다. |
OUT_OUTLINE_PRECIS |
트루 타입 또는 외곽선 폰트를 선택하도록 한다. |
OUT_RASTER_PRECIS |
래스트 폰트를 선택하도록 한다. |
OUT_STRING_PRECIS |
폰트 매퍼가 사용하지 않는 값이되 래스트 폰트 열거시 리턴된다. |
OUT_STROKE_PRECIS |
폰트 매퍼가 사용하지 않는 값이되 래스트 폰트 열거시 리턴된다. |
OUT_TT_ONLY_PRECIS |
트루 타입 폰트를 선택하도록 한다. 트루 타입 폰트가 없으면 디폴트 동작대로 한다. |
OUT_TT_PRECIS |
트루 타입 폰트를 선택하도록 한다. |
▶fdwClipPrecision : 클리핑 정확도를 설정한다. 클리핑 영역을 벗어난 문자의 일부를 어떻게 클립할 것인가를 지정하면 다음과 같은 값들이 있다.
값 |
설명 |
CLIP_DEFAULT_PRECIS |
디폴트 클리핑 동작 |
CLIP_CHARACTER_PRECIS |
사용되지 않음 |
CLIP_STROKE_PRECIS |
|
CLIP_MASK |
사용되지 않음 |
CLIP_EMBEDDED |
|
CLIP_LH_ANGLES |
|
CLIP_TT_ALWAYS |
사용되지 않음 |
▶fdwQuality : 논리적 폰트를 물리적 폰트에 얼마나 근접시킬 것인가를 지정한다.
값 |
설명 |
DEFAULT_QUALITY |
폰트의 모양을 문제삼지 않는다. |
DRAFT_QUALITY |
PROOF_QUALITY보다 한단계 낮은 품질 등급이다. |
PROOF_QUALITY |
논리 폰트의 속성보다 글자의 품질을 더 중요시한다. 래스터 폰트의 경우 크기가 가장 근접한 폰트가 선택된다. |
▶fdwPitchAndFamily : 폰트의 피치와 그룹을 설정한다.하위 2비트는 폰트의 피치를 나타내며 상위 4비트는 폰트의 패밀리를 지정한다. 피치는 폰트의 폭이 글자마다 다른가 일정한가를 지정하며 DEFAULT_PITCH, FIXED_PITCH(고정폭), VARIABLE_PITCH(가변폭) 세가지가 있다. 패밀리는 획의 굵기와 세리프 특성이 같은 폰트의 모임이며 다음 다섯 가지 종류가 있다.
패밀리 |
설명 |
FF_DECORATIVE |
장식체 |
FF_DONTCARE |
패밀리를 상관하지 않는다. 또는 패밀리를 알 수 없다. 이 값은 실제로 존재하는 패밀리가 아니라 임의의 패밀리를 지칭한다. |
FF_MODERN |
고정폭이며 세리프는 있을 수도 있고 없을 수도 있따. |
FF_ROMAN |
세리프가 있고 가변폭이다. |
FF_SCRIPT |
손을 쓴 듯한 필기체 형식의 폰트 |
FF_SWISS |
세리프가 없고 고정폭이다. |
이 인수에 피치와 패밀리 값을 OR 연산자로 같이 지정한다. 예를 들어 고정폭의 Roman 패밀리 폰트를 원할 경우 FIXED_PITCH | FF_ROMAN값을 지정하면 된다.
SetTextAlign
▶fMode:정렬 방식과 CP사용 여부 등의 플래그를 지정한다. 정렬 방식은 수평, 수직에 대해 각각 한 종류만 선택할 수 있다.
플래그 |
설명 |
TA_BLASELINE |
텍스트의 기준선에 정렬 |
TA_BOTTOM |
수직 하단 정렬 |
TA_TOP |
수직 상단 정렬 |
TA_CENTER |
수평 중앙 정렬 |
TA_LEFT |
수평 왼쪽 정렬 |
TA_RIGHT |
수평 오른쪽 정렬 |
TA_NOUPATECP |
문자열이 출력된 후 CP는 변경되지 않는다. |
TA_RTLREADING |
문자열을 오른쪽에서 왼쪽으로 출력한다. 한글 윈도우즈에서는 의미가 없다. |
TA_UPDATECP |
문자열 출력 좌표 CP를 사용하며 문자열 출력 후 CP를 갱신한다. |
CreateWindowEx
- WS_THICKFRAME : 크기 조정이 가능한 두꺼운 경계선을 가진다
- WS_CAPTION : 타이틀 바를 가진 윈도우를 만들며 WS_BORDER 스타일을 포함한다
// 펜 스타일 종류
- PS_SOLID : 실선을 그린다
- PS_DASH : 파선을 그린다
- PS_DOT : 점선을 그린다
- PS_DASHDOT : 점선과 파선으로 번갈아 구성된 선을 그린다.
- PS_NULL : 아무것도 그리지 않는다. (자리를 찾이하나?)
- PS_INSIDEFRAME : 이상한 펜 모양, 기본적으로 PS_SOLID와 같지만 도형 드로잉 함수에 건내주는 좌표의 의미가 변한다. 실선 이되 사각형 안쪽으로만 그려진다.(아직 이해가 잘 안됨)
// 빗금 패턴의 종류
- HS_BDIAGONAL : 우상에서 좌하로의 빗금
- HS_CROSS : 십자가 형태
- HS_DIAGCROSS : 사선십자가 형태
- HS_FDIAGONAL : 좌상에서 우하로의 빗금
- HS_HORIZONTAL : 수평 빗금
- HS_VERTICAL : 수직 빗금
//
- BS_SOLID : 단일색
- BS_PATTERN : 비트맵 패턴
- BS_HATCHED : 빗금 패턴