GetTextExtentExPointA 함수(wingdi.h)

GetTextExtentExPoint 함수는 지정된 공간에 맞는 지정된 문자열의 문자 수를 검색하고 각 문자에 대한 텍스트 범위로 배열을 채웁니다. 텍스트 범위는 공백의 시작 부분과 공백에 맞는 문자 사이의 거리입니다. 이 정보는 단어 줄 바꿈 계산에 유용합니다.

구문

BOOL GetTextExtentExPointA(
  [in]  HDC    hdc,
  [in]  LPCSTR lpszString,
  [in]  int    cchString,
  [in]  int    nMaxExtent,
  [out] LPINT  lpnFit,
  [out] LPINT  lpnDx,
  [out] LPSIZE lpSize
);

매개 변수

[in] hdc

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

[in] lpszString

익스텐트 검색할 null로 끝나는 문자열에 대한 포인터입니다.

[in] cchString

lpszStr 매개 변수가 가리키는 문자열의 문자 수입니다. ANSI 호출의 경우 문자열 길이를 바이트 단위로 지정하고 유니코드의 경우 WORD의 문자열 길이를 지정합니다. ANSI 함수의 경우 SBCS 코드 페이지의 문자는 각각 1바이트를 사용하지만 DBCS 코드 페이지의 대부분의 문자는 2바이트를 사용합니다. 유니코드 함수의 경우 가장 현재 정의된 유니코드 문자(기본 BMP(다국어 평면))는 하나의 WORD이고 유니코드 서로게이트는 두 개의 WORD입니다.

[in] nMaxExtent

서식이 지정된 문자열의 허용 가능한 최대 너비(논리 단위)입니다.

[out] lpnFit

nMaxExtent 매개 변수로 지정된 공간에 맞는 최대 문자 수를 받는 정수에 대한 포인터입니다. lpnFit 매개 변수가 NULL이면 nMaxExtent 매개 변수가 무시됩니다.

[out] lpnDx

부분 문자열 익스텐트를 수신하는 정수 배열에 대한 포인터입니다. 배열의 각 요소는 문자열의 시작 부분과 nMaxExtent 매개 변수로 지정된 공간에 맞는 문자 중 하나 사이의 거리를 논리 단위로 제공합니다. 전체 배열이 내부적으로 사용되므로 이 배열에는 cchString 매개 변수에 지정된 문자만큼 많은 요소가 있어야 합니다. 함수는 lpnFit 매개 변수에 지정된 문자 수만큼 유효한 익스텐트로 배열을 채웁니다. 배열의 나머지 부분에 있는 모든 값은 무시해야 합니다. alpDxNULL인 경우 함수는 부분 문자열 너비를 계산하지 않습니다.

문자 시퀀스를 임의의 문자 모양으로 나타낼 수 있는 복잡한 스크립트의 경우 lpnFit 매개 변수에서 지정한 수까지의 alpDx 배열 값은 코드 포인트와 일대일로 일치합니다. 다시 말하지만, alpDx 배열의 나머지 값은 무시해야 합니다.

[out] lpSize

문자열의 차원을 논리 단위로 받는 SIZE 구조체에 대한 포인터입니다. 이 매개 변수는 NULL일 수 없습니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

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

설명

lpnFitalpDx 매개 변수가 모두 NULL인 경우 GetTextExtentExPoint 함수를 호출하는 것은 GetTextExtentPoint 함수를 호출하는 것과 같습니다.

GetTextExtentExPoint의 ANSI 버전의 경우 lpDx 배열은 lpString에 바이트가 있는 것과 동일한 수의 INT 값을 가집니다. DBCS 문자의 2바이트에 해당하는 INT 값은 각각 전체 복합 문자의 범위입니다.

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

이 함수는 텍스트 익스텐트 값을 반환할 때 텍스트가 가로, 즉 이스케이프먼트가 항상 0이라고 가정합니다. 이는 텍스트의 가로 및 세로 측정 모두에 해당합니다. 0이 아닌 이스케이프먼트를 지정하는 글꼴을 사용하는 경우에도 이 함수는 텍스트 범위를 계산하는 동안 각도를 사용하지 않습니다. 앱은 명시적으로 변환해야 합니다. 그러나 그래픽 모드가 GM_ADVANCED 설정되고 문자 방향이 인쇄 방향에서 90도인 경우 이 함수가 반환하는 값은 이 규칙을 따르지 않습니다. 지정된 문자열에 대한 문자 방향과 인쇄 방향이 일치하면 이 함수는 SIZE 구조에서 문자열의 크기를 { cx : 116, cy : 18 }로 반환합니다. 동일한 문자열에 대해 문자 방향과 인쇄 방향이 90도 떨어져 있으면 이 함수는 SIZE 구조에서 문자열의 크기를 { cx : 18, cy : 116 }로 반환합니다.

이 함수는 문자열에 있는 각 연속 문자의 범위를 반환합니다. 이러한 값을 논리 단위로 반올림하면 GetCharWidth에서 반환되는 것과 다른 결과를 얻게 되며, 이 결과는 논리 단위로 반올림된 각 개별 문자의 너비를 반환합니다.

참고

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

요구 사항

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

추가 정보

글꼴 및 텍스트 함수

글꼴 및 텍스트 개요

GetTextExtentPoint

SIZE