Compartilhar via


Função DrvMovePointer (winddi.h)

A função DrvMovePointer move o ponteiro para uma nova posição e garante que a GDI não interfira na exibição do ponteiro.

Sintaxe

void DrvMovePointer(
  [in] SURFOBJ *pso,
  [in] LONG    x,
  [in] LONG    y,
  [in] RECTL   *prcl
);

Parâmetros

[in] pso

Ponteiro para uma estrutura SURFOBJ que descreve a superfície de um dispositivo de exibição.

[in] x

Especifique a coordenada x na exibição em que o driver deve posicionar o ponto de acesso do ponteiro.

Um valor x negativo indica que o driver deve remover o ponteiro da exibição porque o desenho está prestes a ocorrer onde ele está localizado atualmente. Se o ponteiro tiver sido removido da exibição e o valor x for não negativo, o driver deverá restaurar o ponteiro.

[in] y

Especifique a coordenada y na exibição em que o driver deve posicionar o ponto de acesso do ponteiro.

Quando o driver tiver definido o sinalizador GCAPS_PANNING na estrutura DEVINFO , um valor y negativo indica que a GDI está chamando essa função apenas para notificar o driver da posição atual do cursor. A posição atual pode ser computada como (x, y+pso-sizlBitmap.cy>). Um driver que não define o sinalizador GCAPS_PANNING nunca receberá uma coordenada y negativa.

[in] prcl

Ponteiro para uma estrutura RECTL definindo uma área que vincula todos os pixels afetados pelo ponteiro na tela. O GDI não desenhará neste retângulo sem primeiro remover o ponteiro da tela. Este parâmetro pode ser NULL.

Retornar valor

Nenhum

Comentários

Os drivers às vezes precisam saber a posição atual do ponteiro na tela – mesmo quando a GDI está simulando o ponteiro (de modo que o driver não recebe mais chamadas normais do DrvMovePointer ) – para lidar com exibições virtuais de movimento panorâmico. Para receber essa notificação, o driver deve definir o sinalizador GCAPS_PANNING no campo flGraphicsCaps da estrutura DEVINFO .

DrvMovePointer não será chamado enquanto qualquer thread estiver desenhando no driver de exibição, a menos que o sinalizador GCAPS_ASYNCMOVE seja definido no membro flGraphicsCaps de DEVINFO.

DrvMovePointer deve ser implementado em drivers de exibição somente quando DrvSetPointerShape também é implementado.

Se um driver tiver registrado o ponteiro especificado usando DrvSetPointerShape, DrvMovePointer não deverá falhar.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho winddi.h (inclua Winddi.h)

Confira também

DEVINFO

DrvSetPointerShape

SURFOBJ