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 는 다음 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
GDI는 셰이프를 허용합니다. GDI는 먼저 포인터를 방해하지 않고 prcl 에 기록된 사각형에서 읽거나 쓰지 않습니다. |
|
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 |