Função DrvStrokeAndFillPath (winddi.h)
A função DrvStrokeAndFillPath traça (contornos) e preenche um caminho simultaneamente.
Sintaxe
BOOL DrvStrokeAndFillPath(
[in, out] SURFOBJ *pso,
[in, out] PATHOBJ *ppo,
[in] CLIPOBJ *pco,
[in, optional] XFORMOBJ *pxo,
[in] BRUSHOBJ *pboStroke,
[in] LINEATTRS *plineattrs,
[in] BRUSHOBJ *pboFill,
[in] POINTL *pptlBrushOrg,
[in] MIX mixFill,
[in] FLONG flOptions
);
Parâmetros
[in, out] pso
Ponteiro para uma estrutura SURFOBJ que descreve a superfície na qual desenhar.
[in, out] ppo
Ponteiro para uma estrutura PATHOBJ que descreve o caminho a ser preenchido. As rotinas de serviço PATHOBJ_Xxx são fornecidas para enumerar as linhas, as curvas de Bezier e outros dados que compõem o caminho.
[in] pco
Ponteiro para uma estrutura CLIPOBJ . As rotinas de serviço CLIPOBJ_Xxx são fornecidas para enumerar a região de clipe como um conjunto de retângulos.
[in, optional] pxo
Ponteiro para uma estrutura XFORMOBJ que é necessária quando uma linha larga geométrica é desenhada. Ele especifica a transformação que leva as coordenadas mundiais para as coordenadas do dispositivo. Isso é necessário porque o caminho é fornecido nas coordenadas do dispositivo, mas uma linha de largura geométrica é realmente ampliada em coordenadas mundiais. O XFORMOBJ pode ser consultado para descobrir qual é a transformação.
[in] pboStroke
Ponteiro para uma estrutura BRUSHOBJ que especifica o pincel a ser usado ao acariciar o caminho.
[in] plineattrs
Ponteiro para a estrutura LINEATTRS que descreve os atributos da linha a ser desenhada.
[in] pboFill
Ponteiro para uma estrutura BRUSHOBJ que especifica o pincel a ser usado ao preencher o caminho.
[in] pptlBrushOrg
Ponteiro para uma estrutura POINTL que especifica a origem do pincel para ambos os pincéis.
[in] mixFill
O modo de combinação que define as operações de raster em primeiro plano e plano de fundo a serem usadas para o pincel. Para obter mais informações sobre o modo de combinação, consulte Comentários.
[in] flOptions
Especifica FP_WINDINGMODE, o que significa que um preenchimento de modo sinuoso deve ser executado ou FP_ALTERNATEMODE, o que significa que um preenchimento de modo alternado deve ser executado. Todos os outros sinalizadores devem ser ignorados. Para obter mais informações sobre esses modos, consulte Modos de preenchimento de caminho.
Valor retornado
O valor retornado será TRUE se o driver for capaz de preencher o caminho. Caso contrário, se o GDI preencher o caminho, o valor retornado será FALSE. Se ocorrer um erro, o valor retornado será DDI_ERROR e um código de erro será registrado.
Comentários
Se uma linha larga for usada para acariciar, a área preenchida deverá ser reduzida para compensar.
O driver poderá retornar FALSE se o caminho ou o recorte for muito complexo para o dispositivo manipular; nesse caso, o GDI converte em uma chamada mais simples. Por exemplo, se o driver do dispositivo tiver definido o sinalizador GCAPS_BEZIERS no membro flGraphicsCaps da estrutura DEVINFO e receber um caminho com curvas de Bezier, ele poderá retornar FALSE; O GDI converterá as curvas de Bezier em linhas e chamará DrvStrokeAndFillPath novamente. Se o driver do dispositivo retornar FALSE novamente, o GDI simplificará ainda mais a chamada, fazendo chamadas para DrvStrokePath e DrvFillPath ou para DrvBitBlt, dependendo da combinação e largura das linhas que compõem o caminho.
O modo de combinação define como o padrão de entrada deve ser misturado com os dados que já estão na superfície do dispositivo. O tipo de dados MIX consiste em dois valores roP2 (operação de raster binário) empacotados em um único ULONG. O byte de ordem mais baixa define a operação de raster em primeiro plano; o próximo byte define a operação de raster em segundo plano. Para obter mais informações sobre códigos de operação de raster, consulte a documentação do SDK do Microsoft Windows.
Requisitos
Plataforma de Destino | Área de Trabalho |
Cabeçalho | winddi.h (inclua Winddi.h) |