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) |