다음을 통해 공유


EngSetPointerShape 함수(winddi.h)

EngSetPointerShape 함수는 호출 드라이버에 대한 포인터 셰이프를 설정합니다.

구문

ENGAPI ULONG EngSetPointerShape(
  [in] SURFOBJ  *pso,
  [in] SURFOBJ  *psoMask,
  [in] SURFOBJ  *psoColor,
  [in] XLATEOBJ *pxlo,
  [in] LONG     xHot,
  [in] LONG     yHot,
  [in] LONG     x,
  [in] LONG     y,
  [in] RECTL    *prcl,
  [in] FLONG    fl
);

매개 변수

[in] pso

그릴 표면을 설명하는 SURFOBJ 구조체에 대한 포인터입니다.

[in] psoMask

포인터 비트맵에 적용할 AND-XOR 마스크를 정의하는 SURFOBJ 구조체에 대한 포인터입니다. 비트맵의 위쪽 절반은 단색 AND 마스크를 지정하고 아래쪽 절반은 흑백 XOR 마스크를 지정합니다. 포인터는 psoMask 가 가리키는 마스크의 너비와 절반 높이와 동일합니다. 포인터 크기에 대한 암시적 제약 조건은 없지만 최적의 포인터 크기는 32 x 32, 48 x 48 및 64 x 64 픽셀입니다. 이 매개 변수가 NULL이면 포인터가 투명합니다.

[in] psoColor

색 포인터의 색을 정의하는 SURFOBJ 구조체에 대한 포인터입니다. 이 비트맵은 psoMask 가 가리키는 비트맵의 너비와 절반 높이이며 pso 가 가리키는 표면과 동일한 색 형식입니다. 이 매개 변수가 NULL이면 포인터가 단색입니다.

[in] pxlo

psoColor에서 색을 정의하는 XLATEOBJ 구조체에 대한 포인터입니다.

[in] xHot

왼쪽 위 픽셀을 기준으로 포인터 핫스폿의 x 좌표를 지정합니다. 핫스폿으로 표시된 픽셀은 새 포인터 위치에 배치되어야 합니다.

[in] yHot

왼쪽 위 픽셀을 기준으로 포인터 핫 스폿의 y 좌표를 지정합니다. 핫스폿으로 표시된 픽셀은 새 포인터 위치에 배치되어야 합니다.

[in] x

새 포인터 위치의 x 좌표를 지정합니다.

[in] y

새 포인터 위치의 y 좌표를 지정합니다.

[in] prcl

RECTL 구조체에 대한 포인터입니다. NULL이 아닌 경우 드라이버는 디스플레이의 포인터에 의해 영향을 받는 모든 픽셀을 경계하는 사각형을 제공했습니다. GDI는 먼저 포인터를 방해하지 않고 이 사각형에 그리는 것을 방지합니다.

[in] fl

GDI가 이 호출을 처리하는 데 사용해야 하는 플래그 집합을 지정합니다. 이 매개 변수는 다음 미리 정의된 값 중 하나 이상일 수 있습니다.

플래그 의미
SPS_ANIMATESTART GDI는 애니메이션 포인터 효과를 구성하는 비슷한 크기의 일련의 포인터 셰이프를 받을 수 있도록 준비해야 합니다.
SPS_ANIMATEUPDATE GDI는 애니메이션 계열에서 다음 포인터 셰이프를 그려야 합니다.
SPS_CHANGE 포인터 셰이프를 변경하려면 GDI가 요청됩니다.

반환 값

EngSetPointerShape 는 다음 값 중 하나를 반환합니다.

반환 코드 설명
SPS_ACCEPT_EXCLUDE
GDI는 셰이프를 허용합니다. GDI는 먼저 포인터를 방해하지 않고 prcl 에 기록된 사각형에서 읽거나 쓰지 않습니다.
SPS_ERROR
GDI는 일반적으로 이 셰이프를 지원하지만 비정상적인 이유로 실패했습니다.

설명

드라이버는 EngSetPointerShape 를 호출하여 GDI가 소프트웨어 커서를 관리하도록 할 수 있습니다.

단색 비트맵에는 psoMask 가 가리키는 두 부분이 있습니다. 첫 번째 부분은 포인터에 대한 AND 마스크를 정의하고 두 번째 부분은 XOR 마스크를 정의합니다. 이러한 마스크는 포인터 이미지의 각 픽셀에 대해 두 비트의 정보를 제공합니다. 다음 진리 표에서는 AND 및 XOR 마스크의 다양한 값에 대해 디스플레이에 GDI가 그리는 것을 결정합니다.

AND 값 XOR 값 결과 픽셀
0 0 흰색
0 1 검정
1 0 픽셀 변경 없음
1 1 픽셀 색이 반전됨
 

이 메커니즘은 포인터를 구성하는 픽셀의 투명도 및 반전을 허용하면서 흑백 이미지를 제공합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 winddi.h(Winddi.h 포함)
라이브러리 Win32k.lib
DLL Win32k.sys

추가 정보

DrvSetPointerShape

EngMovePointer

SURFOBJ

XLATEOBJ