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
애플리케이션 정의 사각형을 사용하는 방법을 지정합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
값 | 의미 |
---|---|
|
텍스트가 사각형으로 잘립니다. |
|
lpString 배열은 GetCharacterPlacement 반환된 배열을 참조하며 추가 언어별 처리가 필요하지 않은 경우 GDI에서 직접 구문 분석해야 합니다. 문자 모양 인덱싱은 TrueType 글꼴에만 적용되지만 비트맵 및 벡터 글꼴에 플래그를 사용하여 추가 언어 처리가 필요하지 않으며 GDI가 문자열을 직접 처리해야 함을 나타낼 수 있습니다. 문자열이 래스터 글꼴의 8비트 값 배열로 간주되더라도 모든 문자 모양 인덱스는 16비트 값입니다.
ExtTextOutW의 경우 문자 모양 인덱스는 메타파일로 저장됩니다. 그러나 올바른 문자를 표시하려면 동일한 글꼴을 사용하여 메타파일을 재생해야 합니다. ExtTextOutA의 경우 문자 모양 인덱스는 저장되지 않습니다. |
|
시스템 사용을 위해 예약되어 있습니다. 애플리케이션이 이 플래그를 설정하면 국가별 스크립팅 지원이 손실되고 경우에 따라 텍스트가 전혀 표시되지 않을 수 있습니다. |
|
숫자를 표시하려면 유럽 숫자를 사용합니다. |
|
숫자를 표시하려면 로캘에 적합한 숫자를 사용합니다. |
|
현재 배경색은 사각형을 채우는 데 사용해야 합니다. |
|
이 설정이 설정되면 lpDx 가리키는 배열에 값 쌍이 포함됩니다. 각 쌍의 첫 번째 값은 평소와 같이 인접한 문자 셀의 원점 사이의 거리이지만 두 번째 값은 글꼴의 세로 방향을 따라 변위입니다. |
|
중동 언어 버전의 Windows: 이 값을 지정하고 히브리어 또는 아랍어 글꼴을 디바이스 컨텍스트로 선택하면 문자열이 오른쪽에서 왼쪽으로 읽기 순서를 사용하여 출력됩니다. 이 값을 지정하지 않으면 문자열이 왼쪽에서 오른쪽 순서로 출력됩니다. SetTextAlign |
ETO_GLYPH_INDEX 및 ETO_RTLREADING 값을 함께 사용할 수 없습니다. ETO_GLYPH_INDEX 모든 언어 처리가 완료되었음을 의미하므로 지정된 경우 함수는 ETO_RTLREADING 플래그를 무시합니다.
[in] lprect
클리핑, 불투명 또는 둘 다에 사용되는 사각형의 차원을 논리적 좌표로 지정하는 선택적 RECT 구조체에 대한 포인터입니다.
[in] lpString
그릴 텍스트를 지정하는 문자열에 대한 포인터입니다. cbCount 문자열의 길이를 지정하므로 문자열을 0으로 종료할 필요가 없습니다.
[in] c
lpString
이 값은 8192를 초과할 수 없습니다.
[in] lpDx
인접한 문자 셀의 원점 사이의 거리를 나타내는 선택적 값 배열에 대한 포인터입니다. 예를 들어 lpDx[
반환 값
문자열이 그려지면 반환 값은 0이 아닌 값입니다. 그러나 ETO_GLYPH_INDEX 사용하여 ANSI 버전의
함수가 실패하면 반환 값은 0입니다.
발언
지정된 디바이스 컨텍스트에 대한 현재 텍스트 맞춤 설정은 참조 지점을 사용하여 텍스트를 배치하는 방법을 결정합니다. 텍스트 맞춤 설정은 GetTextAlign 함수를 호출하여 검색됩니다. 텍스트 맞춤 설정은 SetTextAlign 함수를 호출하여 변경됩니다. 텍스트 맞춤에 다음 값을 사용할 수 있습니다. 가로 및 세로 맞춤에 영향을 주는 플래그는 하나만 선택할 수 있습니다. 또한 현재 위치를 변경하는 두 플래그 중 하나만 선택할 수 있습니다.
기본적으로 현재 위치는 이 함수에서 사용되거나 업데이트되지 않습니다. 그러나 애플리케이션은 fMode 매개 변수가 TA_UPDATECP 설정된 SetTextAlign 함수를 호출하여 애플리케이션이 지정된 디바이스 컨텍스트에 대해 ExtTextOut 호출할 때마다 시스템이 현재 위치를 사용하고 업데이트할 수 있도록 할 수 있습니다. 이 플래그가 설정되면 시스템은 후속
ExtTextOutANSI 버전의 경우 lpDx 배열은 lpString바이트가 있는 것과 동일한 수의 INT 값을 가집니다. DBCS 문자의 경우 두 바이트의 합계가 원하는 dx에 추가되는 한 리드 바이트와 트레일 바이트 사이에 lpDx 항목의 dx를 할당할 수 있습니다. 유니코드 버전의 ExtTextOutDBCS 문자의 경우 각 유니코드 문자는 단일 pdx 항목을 가져옵니다.
GetTextExtentExPointalpDx 값은 ExtTextOut대한 lpDx 값과 다릅니다. lpDxalpDx 값을 사용하려면 먼저 해당 값을 처리해야 합니다.
ExtTextOut 필요한 경우 유니스크립트 사용하여 글꼴을 대체합니다. ETO_IGNORELANGUAGE 플래그는 이 동작을 억제하며 전달해서는 안 됩니다.
또한 ExtTextOut 커널 모드로 전환하기 전에 호출의 내부 일괄 처리를 수행하여 PolyTextOut 사용량과 ExtTextOut비교하는 경우 성능 문제 중 일부를 완화합니다.
팁
ExtTextOut 다양한 언어 표시를 처리할 수 있기 때문에 최신 개발을 위해 PolyTextOut 사용하는 것이 좋습니다.
예제
예를 들어 메뉴 사용
메모
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