다음을 통해 공유


STROBJ 구조체(winddi.h)

STROBJ 클래스 또는 텍스트 문자열 개체에는 디바이스 드라이버에 대한 문자 모양 핸들 및 위치의 열거형이 포함되어 있습니다.

구문

typedef struct _STROBJ {
  ULONG    cGlyphs;
  FLONG    flAccel;
  ULONG    ulCharInc;
  RECTL    rclBkGround;
  GLYPHPOS *pgp;
  LPWSTR   pwszOrg;
} STROBJ;

멤버

cGlyphs

STROBJ의 문자 모양 수를 지정합니다.

flAccel

액셀러레이터 플래그입니다. 이 멤버는 다음 값 중 어느 것이든 될 수 있습니다.

SO_BREAK_EXTRA

고정 너비 간격은 모든 나누기 문자에 추가됩니다.

SO_CHARACTER_EXTRA

각 연속 문자 모양 쌍 사이에 고정 너비 간격이 추가됩니다.

SO_CHAR_INC_EQUAL_BM_BASE

간격은 비트맵 크기에 따라 결정됩니다. 이 컨텍스트에서 비트맵 베이스는 가로 대/소문자, 세로 대/소문자 cy의 경우 cx로 정의됩니다. 이 비트가 설정됨은 글꼴의 모든 문자 모양이 비트맵(GDI에 의해 GLYPHBITS 구조로 제공됨)이 해당 문자 모양에 대한 사전 너비와 같은 밑이 있음을 의미합니다. 고정 피치 글꼴임을 의미하지는 않습니다. (PATHOBJ에는 사용되지 않습니다.)

SO_DO_NOT_SUBSTITUTE_DEVICE_FONT

프린터 드라이버는 GDI의 글꼴 선택으로 프린터 글꼴 중 하나를 대체해서는 안 됩니다.

SO_DXDY

문자 모양은 임의의 위치에서 렌더링되어야 합니다.

SO_ESC_NOT_ORIENT

문자 모양 방향은 이스케이프 방향과 다릅니다. 이스케이프먼트는 텍스트 방향이 가로로 만드는 각도입니다. 방향은 문자 모양 기준선과 이스케이프 방향 사이의 각도입니다.

SO_FLAG_DEFAULT_PLACEMENT

기본 증분 벡터는 문자를 배치하는 데 사용됩니다.

SO_GLYPHINDEX_TEXTOUT

pwszOrg 는 유니코드 배열이 아닌 문자 모양 인덱스의 배열을 가리킵니다.

SO_HORIZONTAL

텍스트가 가로입니다. SO_REVERSED 따라 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로. y 좌표는 문자열의 첫 번째 문자 모양에 대해서만 제공됩니다.

SO_MAXEXT_EQUAL_BM_SIDE

비트맵의 너비는 같습니다. 이 컨텍스트에서 비트맵 쪽은 가로 대/소문자를 위한 cy로 정의되고 세로 대/소문자에서는 cx로 정의됩니다. 이 플래그는 글꼴의 모든 문자 모양이 오름차순 및 내림차순의 합과 같은 면이 되도록 보장합니다. 그러나 이 비트는 상수 쪽 이상을 나타냅니다. 가로 대/소문자의 경우 이 비트는 문자 모양 비트맵의 위쪽과 문자 원점 사이의 세로 거리가 모든 문자 모양에 대한 오름차순과 같음도 나타냅니다. 세로 대/소문자의 경우 이 비트는 문자 모양 비트맵의 원점과 "위쪽" 사이의 가로 거리(양수 또는 음의 y축 방향으로 쓰는지 여부에 따라 실제로 오른쪽 또는 왼쪽)가 오름차순임을 나타냅니다. 두 경우 모두 모든 문자 모양 비트맵의 위쪽과 아래쪽이 쓰기 방향으로 동일한 줄에 배치됩니다. (PATHOBJ에는 사용되지 않습니다.)

SO_REVERSED

가로가 오른쪽에서 왼쪽이거나 세로가 아래쪽에서 위쪽인 경우 를 설정합니다.

SO_VERTICAL

텍스트가 세로입니다. SO_REVERSED 따라 위에서 아래로 또는 맨 아래에서 위로. x 좌표는 문자열의 첫 번째 문자 모양에 대해서만 제공됩니다.

SO_ZERO_BEARINGS

모든 문자 모양에는 0 A 및 0 C 간격이 있습니다. 이 비트는 문자 모양 블랙 박스가 겹치지 않도록 보장합니다.

ulCharInc

글꼴이 고정 피치(모노스페이스) 글꼴인지 여부를 지정합니다. 이 경우 이 멤버는 골반의 문자 모양 너비와 같습니다. 그렇지 않으면 0입니다. 이 멤버가 0이 아닌 경우 GDI는 문자열의 첫 번째 문자에 대해서만 유효한 좌표를 제공합니다. 다른 모든 문자 위치는 쓰기 방향에 따라 이 멤버의 값을 연속해서 추가하여 드라이버에서 생성해야 합니다.

rclBkGround

문자열의 경계 상자를 설명하는 RECTL 구조를 지정합니다.

pgp

전체 문자열에 대한 GLYPHPOS 배열에 대한 포인터입니다. NULL일 수 있습니다(다음 설명 섹션 참조).

pwszOrg

원래 유니코드 문자열 또는 cGlyphs 문자에 대한 포인터입니다. 이름과 달리 이 문자열은 일반적으로 null로 종료되지 않습니다. 또한 프린터 글꼴로 저널링과 같이 이 문자열이 항상 유효하지는 않습니다. 이 경우 이 매개 변수는 NULL이 됩니다.

설명

드라이버는 STROBJ_vEnumStartSTROBJ_bEnum 호출하여 문자열에서 문자 모양 ID와 위치를 가져올 수 있습니다. pgpNULL이 아닌 경우 전체 문자열을 설명하는 GLYPHPOS 배열을 가리키며 STROBJ_bEnum 대한 단일 호출만 필요합니다. pgpNULL인 경우 모든 문자열의 문자 모양 위치를 가져오려면 루프에서 STROBJ_bEnum 반복적으로 호출해야 합니다.

요구 사항

요구 사항
헤더 winddi.h(Winddi.h 포함)

추가 정보

DrvGetGlyphMode

DrvTextOut