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

SURFOBJ 結構的指標,定義要套用至指標點陣圖的 AND-XOR 遮罩。 點陣圖的上半部會指定單色 AND 遮罩,下半部則指定單色 XOR 遮罩。 指標的寬度與 psoMask 所指向遮罩高度的一半相同。 指標大小沒有隱含的條件約束,但最佳指標大小為 32 x 32、48 x 48 和 64 x 64 圖元。 如果此參數為 Null,則指標為透明。

[in] psoColor

SURFOBJ 結構的指標,定義色彩指標的色彩。 此點陣圖的寬度和 psoMask 點的點陣圖高度相同,且色彩格式與 pso 點的介面相同。 如果此參數為 Null,則指標為單色。

[in] pxlo

XLATEOBJ結構的指標,定義psoColor中的色彩。

[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 不會讀取或寫入以 中國撰寫 的矩形,而不需要先將指標移出方向。
SPS_ERROR
GDI 通常支援此圖形,但因為不尋常的原因而失敗。

備註

驅動程式可以呼叫 EngSetPointerShape ,讓 GDI 管理軟體資料指標。

psoMask指向的單色點陣圖有兩個部分。 第一個部分會定義指標的 AND 遮罩,而第二個部分則定義 XOR 遮罩。 結合在一起,這些遮罩會為指標影像的每個圖元提供兩個位資訊。 下列事實資料表會決定 AND 和 XOR 遮罩中不同值的顯示器上所繪製的 GDI:

AND 值 XOR 值 結果圖元
0 0 白色
0 1 黑色
1 0 圖元沒有變更
1 1 圖元色彩反轉
 

這項機制提供黑白影像,同時允許透明度和反轉組成指標的圖元。

規格需求

   
最低支援的用戶端 適用于 Windows 2000 和更新版本的 Windows 作業系統。
目標平台 Universal
標頭 winddi.h (包含 Winddi.h)
程式庫 Win32k.lib
Dll Win32k.sys

另請參閱

DrvSetPointerShape

EngMovePointer

SURFOBJ

XLATEOBJ