DrvMovePointer 함수(winddi.h)
DrvMovePointer 함수는 포인터를 새 위치로 이동하고 GDI가 포인터 표시를 방해하지 않도록 합니다.
구문
void DrvMovePointer(
[in] SURFOBJ *pso,
[in] LONG x,
[in] LONG y,
[in] RECTL *prcl
);
매개 변수
[in] pso
디스플레이 디바이스의 표면을 설명하는 SURFOBJ 구조체에 대한 포인터입니다.
[in] x
드라이버가 포인터의 핫 스폿을 배치해야 하는 디스플레이의 x 좌표를 지정합니다.
음수 x 값은 드로잉이 현재 있는 위치에서 발생하려고 하므로 드라이버가 디스플레이에서 포인터를 제거해야 했음을 나타냅니다. 포인터가 디스플레이에서 제거되고 x 값이 무수한 경우 드라이버는 포인터를 복원해야 합니다.
[in] y
드라이버가 포인터의 핫 스폿을 배치해야 하는 디스플레이의 y 좌표를 지정합니다.
드라이버가 DEVINFO 구조에서 GCAPS_PANNING 플래그를 설정한 경우 음수 y 값은 GDI가 커서의 현재 위치를 드라이버에 알리기 위해 이 함수를 호출하고 있음을 나타냅니다. 현재 위치는 (x, y+pso-sizlBitmap.cy>)로 계산할 수 있습니다. GCAPS_PANNING 플래그를 설정하지 않은 드라이버는 음수 y 좌표를 받지 않습니다.
[in] prcl
디스플레이의 포인터에 의해 영향을 받는 모든 픽셀을 경계하는 영역을 정의하는 RECTL 구조체에 대한 포인터입니다. GDI는 화면에서 포인터를 먼저 제거하지 않고 이 사각형에 그리지 않습니다. 이 매개 변수는 NULL일 수 있습니다.
반환 값
없음
설명
드라이버는 경우에 따라 화면에서 포인터의 현재 위치를 알아야 합니다 . GDI가 포인터를 시뮬레이션하는 경우에도 (드라이버가 더 이상 일반 DrvMovePointer 호출을 받지 않도록) - 이동 가상 디스플레이를 처리하기 위해. 이 알림을 받으려면 드라이버는 DEVINFO 구조체의 flGraphicsCaps 필드에 GCAPS_PANNING 플래그를 설정해야 합니다.
deVINFO의 flGraphicsCaps 멤버에서 GCAPS_ASYNCMOVE 플래그를 설정하지 않는 한 스레드가 디스플레이 드라이버에 그리는 동안 DrvMovePointer가 호출되지 않습니다.
DrvMovePointer는DrvSetPointerShape 도 구현된 경우에만 디스플레이 드라이버에서 구현해야 합니다.
드라이버가 DrvSetPointerShape를 사용하여 지정된 포인터를 등록한 경우 DrvMovePointer 는 실패하지 않아야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | winddi.h(Winddi.h 포함) |