ScriptTextOut 함수(usp10.h)

지정된 스크립트 셰이프에 대한 텍스트를 표시하고 정보를 배치합니다.

구문

HRESULT ScriptTextOut(
  [in]           const HDC             hdc,
  [in, out]      SCRIPT_CACHE          *psc,
  [in]           int                   x,
  [in]           int                   y,
  [in]           UINT                  fuOptions,
  [in, optional] const RECT            *lprc,
  [in]           const SCRIPT_ANALYSIS *psa,
  [in]           const WCHAR           *pwcReserved,
  [in]           int                   iReserved,
  [in]           const WORD            *pwGlyphs,
  [in]           int                   cGlyphs,
  [in]           const int             *piAdvance,
  [in, optional] const int             *piJustify,
  [in]           const GOFFSET         *pGoffset
);

매개 변수

[in] hdc

디바이스 컨텍스트에 대한 핸들입니다. 자세한 내용은 캐싱합니다. 다른 관련 Uniscribe 함수와 달리 이 함수는 핸들을 필수로 정의합니다.

[in, out] psc

스크립트 캐시를 식별하는 SCRIPT_CACHE 구조체에 대한 포인터입니다.

[in] x

첫 번째 문자 모양의 x 좌표 값입니다.

[in] y

첫 번째 문자 모양의 y 좌표 값입니다.

[in] fuOptions

ExtTextOutfuOptions 매개 변수에 해당하는 옵션입니다. 이 매개 변수는 ETO_CLIPPED 또는 ETO_OPAQUE, 두 값 모두 또는 값으로 설정할 수 없습니다.

[in, optional] lprc

디스플레이를 클리핑하는 데 사용되는 사각형을 포함하는 RECT 구조체에 대한 포인터입니다. 애플리케이션은 이 매개 변수를 NULL로 설정할 수 있습니다.

[in] psa

ScriptItemize에 대한 이전 호출에서 가져온 SCRIPT_ANALYSIS 구조체에 대한 포인터입니다.

[in] pwcReserved

예약; 은 NULL로 설정해야 합니다.

[in] iReserved

예약되었습니다. 0이어야 합니다.

[in] pwGlyphs

ScriptShape에 대한 이전 호출에서 가져온 문자 모양 배열에 대한 포인터입니다.

[in] cGlyphs

pwGlyphs로 표시된 배열의 문자 모양 수입니다. 최대 문자 모양 수는 65,536개입니다.

[in] piAdvance

ScriptPlace에 대한 이전 호출에서 가져온 고급 너비 배열에 대한 포인터입니다.

[in, optional] piJustify

양쪽 선진 너비(셀 너비)의 배열에 대한 포인터입니다. 애플리케이션은 이 매개 변수를 NULL로 설정할 수 있습니다.

[in] pGoffset

결합 문자 모양에 대한 x 및 y 오프셋을 포함하는 GOFFSET 구조체에 대한 포인터입니다.

반환 값

정상적으로 실행되는 경우 0을 반환합니다. 함수가 성공하지 못하면 0이 아닌 HRESULT 값을 반환합니다. 애플리케이션은 SUCCEEDED 및 FAILED 매크로를 사용하여 반환 값을 테스트 수 있습니다.

설명

이 함수는 텍스트 표시를 위해 운영 체제 ExtTextOut 함수를 호출합니다. 자세한 내용은 Uniscribe를 사용하여 텍스트 표시를 참조하세요.

fLogicalOrder 멤버가 psa로 표시된 SCRIPT_ANALYSIS 구조체에서 설정되지 않는 한 모든 배열은 표시 순서로 표시됩니다.

오른쪽에서 왼쪽으로 렌더링되고 SCRIPT_ANALYSISfLogicalOrder 멤버를 강제하여 논리적 순서로 생성된 모든 실행의 경우 애플리케이션은 SetTextAlign(hdc, TA_RIGHT)을 호출하고 ScriptTextOut을 호출하기 전에 오른쪽 좌표를 제공해야 합니다.

piJustify로 표시된 배열은 각 문자 모양에 대한 셀 너비를 제공합니다. 문자 모양 너비가 piAdvance로 지정된 부당한 너비와 다르면 후행 가장자리의 문자 모양 셀에 공백이 추가되거나 제거됩니다. 문자 모양은 항상 셀의 선행 가장자리에 맞춰집니다. 이 규칙은 시각적 순서로도 적용됩니다.

문자 모양 셀이 확장되면 일반적으로 공백을 추가하여 추가 공간이 구성됩니다. 그러나 아랍어 스크립트의 경우 추가 공간이 글꼴에서 가장 짧은 kashida 문자 모양에 충분하지 않은 한 하나 이상의 카시다 문자 모양으로 구성됩니다. 가장 짧은 kashida의 너비는 ScriptGetFontProperties를 호출하여 사용할 수 있습니다.

애플리케이션은 ScriptTextOut에서 문자열을 정당화해야 하는 경우에만 piJustify에 대한 값을 전달해야 합니다. 일반적으로 애플리케이션은 NULL을 통과해야 합니다.

예를 들어 확장 가능한 페이지 미리 보기를 위해 동일한 시스템에서 메타파일을 글꼴 대체 없이 재생하지 않는 한 애플리케이션은 ScriptTextOut 을 사용하여 메타파일에 쓸 수 없습니다. ScriptTextOut은 메타파일의 문자 모양 번호를 기록합니다. 문자 모양 번호는 글꼴마다 상당히 다르므로 다른 글꼴이 대체될 때 파일이 올바르게 재생되지 않을 수 있습니다. 예를 들어 메타파일을 다른 크기로 재생하면 메타파일에 기록된 CreateFont 요청이 TrueType 글꼴 대신 비트맵으로 resolve 수 있습니다. 마찬가지로 메타파일이 다른 컴퓨터에서 재생되면 요청된 글꼴이 설치되지 않을 수 있습니다. 글꼴 독립적 방식으로 메타파일로 복잡한 스크립트를 작성하려면 애플리케이션에서 ExtTextOut 을 사용하여 논리 문자를 직접 작성해야 텍스트가 재생될 때까지 문자 모양 생성 및 배치가 발생하지 않습니다.

중요 Windows 8부터: Windows 7에서 실행하는 기능을 유지하려면 Uniscribe를 사용하는 모듈에서 라이브러리 목록에서 gdi32.lib 전에 Usp10.lib를 지정해야 합니다.
 

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 usp10.h
라이브러리 Usp10.lib
DLL Usp10.dll
재배포 가능 파일 Windows Me/98/95의 인터넷 Explorer 5 이상

추가 정보

유니스크립팅을 사용하여 텍스트 표시

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptGetFontProperties

ScriptItemize

ScriptPlace

ScriptShape

Uniscribe

Uniscribe 함수