TextOut 와 DrawText (문자열 출력 + SetTextAlign)

문자열 출력 함수 두가지

* TextOut
- 도스의 cout, printf 에 해당하는 함수
- 함수 원형: BOOL TextOut(hdc, nXStart, nYStart, lpszString, cbString)


* SetTextAlign
- 텍스트 정렬 상태를 변경하는 함수
- 함수 원형: UINT SetTextAlign(HDC hdc,UINT fMode);
- 두번째 인수 fMode에 대입 가능한 값(TextOut 함수의 x,y 좌표를 기준으로 정렬 변경)
    1) TA_TOP: 기준 좌표가 상단 좌표
    2) TA_BOTTOM: 기준 좌표가 하단 좌표
    3) TA_CENTER: 기준 좌표가 수평 중앙 좌표
    4) TA_LEFT: 기준 좌표가 수평 왼쪽 좌표
    5) TA_RIGHT: 기준 좌표가 수평 오른쪽 좌표
    6) TA_UPDATECP: 기준좌표를 CP위치로 변경
    7) TA_NOUPDATECP: CP 변경 없이 기준좌표만 사용



* DrawText
- TextOut + SetTextAlign 을 합쳐놓은 함수
- 함수 원형: int DrawText( HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UINT uFormat );
- 세번째 인수 int nCount: 출력 문자열 길이(값을 -1로 넣으면 널 종료 문자열 처리)
- 네번째 인수 LPRECT lpRect: RECT구조체
- 다섯번째 인수 UINT uFormat: 문자열 정렬 방법
    1) DT_LEFT: 수평 왼쪽 정렬
    2) DT_RIGHT: 수평 오른쪽 정렬
    3) DT_CENTER: 수평 중앙 정렬
    4) DT_BOTTOM: 사각 영역(RECT) 바닥에 문자열 출력
    5) DT_VCENTER: 사각 영역 수직 중앙에 문자열 출력
    6) DT_WORDBREAK: 사각 영역 오른쪽 끝에서 자동 개행
    7) DT_SINGLELINE: 한줄 출력
    8) DT_SOCLIP: 사각 영역을 벗어나도 잘리지 않고 출력
- 예시) DrawText(hdc,str,-1,&rt,DT_CENTER | DT_WORDBREAK);

댓글