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。
只有在同時實作DrvSetPointerShape時,才能在顯示驅動程序中實作DrvMovePointer。
如果驅動程式已使用 DrvSetPointerShape註冊指定的指標, DrvMovePointer 不得失敗。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | winddi.h (包含Winddi.h) |