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)

Confira também

CLIPOBJ

DrvBitBlt

DrvFillPath

DrvStrokePath

LINEATTRS

PATHOBJ

SURFOBJ

XFORMOBJ