ExtTextOutA 함수(wingdi.h)

ExtTextOut 함수는 현재 선택한 글꼴, 배경색 및 텍스트 색을 사용하여 텍스트를 그립니다. 필요에 따라 클리핑, 불투명 또는 둘 다에 사용할 차원을 제공할 수 있습니다.

구문

BOOL ExtTextOutA(
  [in] HDC        hdc,
  [in] int        x,
  [in] int        y,
  [in] UINT       options,
  [in] const RECT *lprect,
  [in] LPCSTR     lpString,
  [in] UINT       c,
  [in] const INT  *lpDx
);

매개 변수

[in] hdc

디바이스 컨텍스트에 대한 핸들입니다.

[in] x

문자열을 배치하는 데 사용되는 참조 지점의 x 좌표(논리적 좌표)입니다.

[in] y

문자열을 배치하는 데 사용되는 참조 지점의 y 좌표(논리적 좌표)입니다.

[in] options

애플리케이션 정의 사각형을 사용하는 방법을 지정합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
ETO_CLIPPED
텍스트가 사각형으로 잘립니다.
ETO_GLYPH_INDEX
lpString 배열은 GetCharacterPlacement에서 반환된 배열을 참조하며 추가 언어별 처리가 필요하지 않도록 GDI에서 직접 구문 분석해야 합니다. 문자 모양 인덱싱은 TrueType 글꼴에만 적용되지만 플래그를 비트맵 및 벡터 글꼴에 사용하여 추가 언어 처리가 필요하지 않으며 GDI가 문자열을 직접 처리해야 함을 나타낼 수 있습니다. 문자열이 래스터 글꼴의 8비트 값 배열로 간주되더라도 모든 문자 모양 인덱스는 16비트 값입니다.

ExtTextOutW의 경우 문자 모양 인덱스는 메타파일에 저장됩니다. 그러나 올바른 문자를 표시하려면 동일한 글꼴을 사용하여 메타파일을 재생해야 합니다. ExtTextOutA의 경우 문자 모양 인덱스는 저장되지 않습니다.

ETO_IGNORELANGUAGE
시스템에서 사용하도록 예약되었습니다. 애플리케이션이 이 플래그를 설정하면 국제 스크립팅 지원이 손실되고 경우에 따라 텍스트가 전혀 표시되지 않을 수 있습니다.
ETO_NUMERICSLATIN
숫자를 표시하려면 유럽 숫자를 사용합니다.
ETO_NUMERICSLOCAL
숫자를 표시하려면 로캘에 적합한 숫자를 사용합니다.
ETO_OPAQUE
현재 배경색을 사용하여 사각형을 채워야 합니다.
ETO_PDY
이 값을 설정하면 lpDx 가 가리키는 배열에 값 쌍이 포함됩니다. 각 쌍의 첫 번째 값은 평소와 같이 인접한 문자 셀의 원점 사이의 거리이지만 두 번째 값은 글꼴의 세로 방향을 따라 변위입니다.
ETO_RTLREADING
Windows 중동 언어 버전: 이 값을 지정하고 디바이스 컨텍스트에서 히브리어 또는 아랍어 글꼴을 선택한 경우 문자열은 오른쪽에서 왼쪽 읽기 순서를 사용하여 출력됩니다. 이 값을 지정하지 않으면 문자열이 왼쪽에서 오른쪽 순서로 출력됩니다. SetTextAlign에서 TA_RTLREADING 값을 설정하여 동일한 효과를 달성할 수 있습니다. 이 값은 이전 버전과의 호환성을 위해 유지됩니다.
 

ETO_GLYPH_INDEX 및 ETO_RTLREADING 값을 함께 사용할 수 없습니다. ETO_GLYPH_INDEX 모든 언어 처리가 완료되었음을 의미하므로 함수는 지정된 경우 ETO_RTLREADING 플래그를 무시합니다.

[in] lprect

클리핑, 불투명 또는 둘 다에 사용되는 사각형의 차원(논리적 좌표)을 지정하는 선택적 RECT 구조체에 대한 포인터입니다.

[in] lpString

그릴 텍스트를 지정하는 문자열에 대한 포인터입니다. cbCount는 문자열의 길이를 지정하므로 문자열을 0으로 종료할 필요가 없습니다.

[in] c

lpString에서 가리키는 문자열의 길이입니다.

이 값은 8192를 초과할 수 없습니다.

[in] lpDx

인접한 문자 셀의 원점 사이 거리를 나타내는 값의 선택적 배열에 대한 포인터입니다. 예를 들어 lpDx[i] 논리 단위는 문자 셀 i 의 원점과 문자 셀 i + 1을 구분합니다.

반환 값

문자열이 그려지면 반환 값은 0이 아닌 값입니다. 그러나 extTextOut의 ANSI 버전이 ETO_GLYPH_INDEX와 함께 호출되는 경우 함수는 아무 작업도 수행하지 않더라도 TRUE를 반환합니다.

함수가 실패하면 반환 값은 0입니다.

설명

지정된 디바이스 컨텍스트에 대한 현재 텍스트 맞춤 설정은 참조 지점을 사용하여 텍스트를 배치하는 방법을 결정합니다. 텍스트 맞춤 설정은 GetTextAlign 함수를 호출하여 검색됩니다. 텍스트 맞춤 설정은 SetTextAlign 함수를 호출하여 변경됩니다. 텍스트 맞춤에 다음 값을 사용할 수 있습니다. 가로 및 세로 맞춤에 영향을 주는 플래그 중에서 하나의 플래그만 선택할 수 있습니다. 또한 현재 위치를 변경하는 두 플래그 중 하나만 선택할 수 있습니다.

용어 Description
TA_BASELINE 참조 지점은 텍스트의 기본 줄에 있습니다.
TA_BOTTOM 참조 지점은 경계 사각형의 아래쪽 가장자리에 있습니다.
TA_TOP 참조 지점은 경계 사각형의 위쪽 가장자리에 있습니다.
TA_CENTER 참조 지점은 경계 사각형의 가운데에 가로로 정렬됩니다.
TA_LEFT 참조 지점은 경계 사각형의 왼쪽 가장자리에 있습니다.
TA_RIGHT 참조 지점은 경계 사각형의 오른쪽 가장자리에 있습니다.
TA_NOUPDATECP 현재 위치는 각 텍스트 출력 호출 후에 업데이트되지 않습니다. 참조 지점은 텍스트 출력 함수에 전달됩니다.
TA_RTLREADING Windows 중동 언어 버전: 텍스트는 기본 왼쪽에서 오른쪽 순서가 아닌 오른쪽에서 왼쪽 읽기 순서로 배치됩니다. 디바이스 컨텍스트에서 선택한 글꼴이 히브리어 또는 아랍어인 경우에만 적용됩니다.
TA_UPDATECP 현재 위치는 각 텍스트 출력 호출 후에 업데이트됩니다. 현재 위치는 참조 지점으로 사용됩니다.
 

lpDx 매개 변수가 NULL인 경우 ExtTextOut 함수는 문자 간의 기본 간격을 사용합니다. lpDx 매개 변수가 가리키는 배열의 문자 셀 원본과 내용이 논리 단위로 지정됩니다. 문자 셀 원점은 문자 셀의 왼쪽 위 모서리로 정의됩니다.

기본적으로 현재 위치는 이 함수에서 사용되거나 업데이트되지 않습니다. 그러나 애플리케이션은 fMode 매개 변수가 TA_UPDATECP 설정된 SetTextAlign 함수를 호출하여 애플리케이션이 지정된 디바이스 컨텍스트에 대해 ExtTextOut을 호출할 때마다 시스템이 현재 위치를 사용하고 업데이트할 수 있도록 할 수 있습니다. 이 플래그가 설정되면 시스템은 후속 ExtTextOut 호출에서 XY 매개 변수를 무시합니다.

ANSI 버전의 ExtTextOut의 경우 lpDx 배열은 lpString에 바이트가 있는 것과 동일한 수의 INT 값을 가집니다. DBCS 문자의 경우 두 바이트의 합계가 원하는 dx에 추가되는 한 리드 바이트와 트레일 바이트 사이에 lpDx 항목의 dx를 할당할 수 있습니다. 유니코드 버전의 ExtTextOut이 있는 DBCS 문자의 경우 각 유니코드 문자 모양은 단일 pdx 항목을 가져옵니다.

GetTextExtentExPointalpDx 값은 ExtTextOutlpDx 값과 동일하지 않습니다. lpDx에서 alpDx 값을 사용하려면 먼저 해당 값을 처리해야 합니다.

필요한 경우 ExtTextOut에서 Uniscribe를 사용하여 글꼴을 대체합니다. ETO_IGNORELANGUAGE 플래그는 이 동작을 억제하며 전달해서는 안 됩니다.

또한 ExtTextOut은 커널 모드로 전환하기 전에 호출의 내부 일괄 처리를 수행하여 PolyTextOut 및 ExtTextOut 사용량을 계량할 때 성능 문제 중 일부를 완화합니다.

ExtTextOut 은 다양한 언어의 표시를 처리할 수 있기 때문에 최신 개발을 위해 PolyTextOut 보다 권장됩니다.

예제

예를 들어 메뉴 사용에서 "Menu-Item 텍스트 문자열에 대한 글꼴 설정"을 참조하세요.

참고

wingdi.h 헤더는 EXtTextOut을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h(Windows.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

글꼴 및 텍스트 함수

글꼴 및 텍스트 개요

GetTextAlign

RECT

Selectobject

SetBkColor

SetTextAlign

SetTextColor