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 は失敗しません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | winddi.h (Winddi.h を含む) |