WinAPI: DrawText
TextOut은 너무 단순하고 기능이 적기 때문에 더 많은 기능을 가진 DrawText 함수를 사용하기도 합니다.
int DrawText(HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UINT uFormat);
이 함수는 사각영역을 정의하여 영역 안에 문자열을 출력할 수 있으며 여러가지 포맷을 설정할 수 있는 기능이 있습니다. 사각영역을 정의할 때는 RECT구조체를 사용합니다.
typedef struct _RECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
DrawText의 4번째 인수는 이 구조체의 포인터이며 문자열이 출력될 사각 영역을 지정합니다. 2번째 인수는 출력할 문자열이며, 3번째 인수는 출력할 문자열의 길이입니다. 5번째 인수 uFormat은 DrawText 함수가 문자열을 출력할 방법을 지정하는 플래그입니다.
DT_LEFT : 수평 왼쪽 정렬
DT_RIGHT : 수평 오른쪽 정렬
DT_CENTER : 수평 중앙 정렬
DT_BOTTOM : 바닥
DT_VCENTER : 수직 중앙
DT_WORDBREAK : 사각 영역의 오른쪽 끝에서 자동 개행
DT_SINGLELINE : 한 줄로 출력
DT_NOCLIP : 사각 영역의 경계를 벗어나도 그대로 출력
int DrawText(HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UINT uFormat);
이 함수는 사각영역을 정의하여 영역 안에 문자열을 출력할 수 있으며 여러가지 포맷을 설정할 수 있는 기능이 있습니다. 사각영역을 정의할 때는 RECT구조체를 사용합니다.
typedef struct _RECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
DrawText의 4번째 인수는 이 구조체의 포인터이며 문자열이 출력될 사각 영역을 지정합니다. 2번째 인수는 출력할 문자열이며, 3번째 인수는 출력할 문자열의 길이입니다. 5번째 인수 uFormat은 DrawText 함수가 문자열을 출력할 방법을 지정하는 플래그입니다.
DT_LEFT : 수평 왼쪽 정렬
DT_RIGHT : 수평 오른쪽 정렬
DT_CENTER : 수평 중앙 정렬
DT_BOTTOM : 바닥
DT_VCENTER : 수직 중앙
DT_WORDBREAK : 사각 영역의 오른쪽 끝에서 자동 개행
DT_SINGLELINE : 한 줄로 출력
DT_NOCLIP : 사각 영역의 경계를 벗어나도 그대로 출력
댓글
댓글 쓰기