Função EngSetPointerShape (winddi.h)
A função EngSetPointerShape define a forma do ponteiro para o driver de chamada.
Sintaxe
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
);
Parâmetros
[in] pso
Ponteiro para uma estrutura SURFOBJ que descreve a superfície na qual desenhar.
[in] psoMask
Ponteiro para uma estrutura SURFOBJ que define a máscara AND-XOR a ser aplicada ao bitmap do ponteiro. A metade superior do bitmap especifica a máscara AND monocromática e a metade inferior especifica a máscara XOR monocromática. O ponteiro tem a mesma largura e metade da altura da máscara para a qual psoMask aponta. Não há restrições implícitas em tamanhos de ponteiro, mas os tamanhos de ponteiro ideais são 32 x 32, 48 x 48 e 64 x 64 pixels. Se esse parâmetro for NULL, o ponteiro será transparente.
[in] psoColor
Ponteiro para uma estrutura SURFOBJ que define as cores de um ponteiro de cor. Esse bitmap tem a mesma largura e metade da altura do bitmap para o qual psoMask aponta e está no mesmo formato de cor que a superfície para a qual pso aponta. Se esse parâmetro for NULL, o ponteiro será monocromático.
[in] pxlo
Ponteiro para uma estrutura XLATEOBJ que define as cores em psoColor.
[in] xHot
Especifica a coordenada x do ponto de acesso do ponteiro em relação ao pixel superior esquerdo. O pixel indicado pelo ponto de acesso deve ser posicionado na nova posição do ponteiro.
[in] yHot
Especifica a coordenada y do ponto de acesso do ponteiro em relação ao pixel superior esquerdo. O pixel indicado pelo ponto de acesso deve ser posicionado na nova posição do ponteiro.
[in] x
Especifica as coordenadas x da nova posição do ponteiro.
[in] y
Especifica as coordenadas y da nova posição do ponteiro.
[in] prcl
Ponteiro para uma estrutura RECTL . Se não for NULL, o driver forneceu um retângulo que vincula todos os pixels afetados pelo ponteiro na tela. A GDI evita desenhar nesse retângulo sem primeiro mover o ponteiro para fora do caminho.
[in] fl
Especifica um conjunto de sinalizadores que o GDI deve usar para processar essa chamada. Esse parâmetro pode ser um ou mais dos seguintes valores predefinidos:
Sinalizador | Significado |
---|---|
SPS_ANIMATESTART | O GDI deve estar preparado para receber uma série de formas de ponteiro de tamanho semelhante que serão compostas por um efeito de ponteiro animado. |
SPS_ANIMATEUPDATE | O GDI deve desenhar a próxima forma de ponteiro na série animada. |
SPS_CHANGE | O GDI é solicitado a alterar a forma do ponteiro. |
Valor retornado
EngSetPointerShape retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
A GDI aceita a forma. O GDI não lê ou grava no retângulo escrito em prcl sem primeiro mover o ponteiro para fora do caminho. |
|
A GDI normalmente dá suporte a essa forma, mas falhou por motivos incomuns. |
Comentários
O driver pode chamar EngSetPointerShape para que o GDI gerencie um cursor de software.
Há duas partes no bitmap monocromático para o qual psoMask aponta. A primeira parte define a máscara AND para o ponteiro enquanto a segunda parte define a máscara XOR. Juntas, essas máscaras fornecem dois bits de informações para cada pixel da imagem do ponteiro. A tabela de verdade a seguir determina o que o GDI desenha na exibição para valores diferentes nas máscaras AND e XOR:
VALOR AND | Valor XOR | Pixel resultante |
---|---|---|
0 | 0 | Branca |
0 | 1 | Preto |
1 | 0 | Nenhuma alteração no pixel |
1 | 1 | A cor do pixel é invertida |
Esse mecanismo fornece uma imagem em preto e branco, permitindo transparência e inversão dos pixels que compõem o ponteiro.
Requisitos
Cliente mínimo com suporte | Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Universal |
Cabeçalho | winddi.h (inclua Winddi.h) |
Biblioteca | Win32k.lib |
DLL | Win32k.sys |