Condividi tramite


Funzione DrvStrokeAndFillPath (winddi.h)

Il tratto di funzione DrvStrokeAndFillPath (contorni) e riempie un percorso simultaneamente.

Sintassi

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

Parametri

[in, out] pso

Puntatore a una struttura SURFOBJ che descrive la superficie su cui disegnare.

[in, out] ppo

Puntatore a una struttura PATHOBJ che descrive il percorso da riempire. Le routine di servizio PATHOBJ_Xxx vengono fornite per enumerare le righe, le curve di Bezier e altri dati che costituiscono il percorso.

[in] pco

Puntatore a una struttura CLIPOBJ . Le routine di servizio CLIPOBJ_Xxx vengono fornite per enumerare l'area clip come set di rettangoli.

[in, optional] pxo

Puntatore a una struttura XFORMOBJ necessaria quando viene disegnata una linea geometrica. Specifica la trasformazione che accetta coordinate del mondo alle coordinate del dispositivo. Questo è necessario perché il percorso viene fornito nelle coordinate del dispositivo, ma una linea geometrica wide è effettivamente ampliata nelle coordinate del mondo. È possibile eseguire query su XFORMOBJ per scoprire qual è la trasformazione.

[in] pboStroke

Puntatore a una struttura BRUSHOBJ che specifica il pennello da usare quando si esegue lo strozzamento del percorso.

[in] plineattrs

Puntatore alla struttura LINEATTRS che descrive gli attributi della linea da disegnare.

[in] pboFill

Puntatore a una struttura BRUSHOBJ che specifica il pennello da usare durante il riempimento del percorso.

[in] pptlBrushOrg

Puntatore a una struttura POINTL che specifica l'origine del pennello per entrambi i pennelli.

[in] mixFill

Modalità di combinazione che definisce le operazioni raster in primo piano e in background da usare per il pennello. Per altre informazioni sulla modalità di combinazione, vedere Osservazioni.

[in] flOptions

Specifica FP_WINDINGMODE, ovvero che deve essere eseguita una modalità di riempimento della modalità di avvolgimento o FP_ALTERNATEMODE, ovvero che deve essere eseguita una riempimento in modalità alternata. Tutti gli altri flag devono essere ignorati. Per altre informazioni su queste modalità, vedere Modalità di riempimento percorso.

Valore restituito

Il valore restituito è TRUE se il driver è in grado di riempire il percorso. In caso contrario, se GDI deve invece riempire il percorso, il valore restituito è FALSE. Se si verifica un errore, il valore restituito è DDI_ERROR e viene registrato un codice di errore.

Commenti

Se viene usata una linea larga per la strozzamento, l'area riempita deve essere ridotta per compensare.

Il driver può restituire FALSE se il percorso o il ritaglio è troppo complesso per il dispositivo da gestire; in questo caso, GDI converte in una chiamata più semplice. Ad esempio, se il driver di dispositivo ha impostato il flag GCAPS_BEZIERS nel membro flGraphicsCaps della struttura DEVINFO e quindi riceve un percorso con curve Bezier, può restituire FALSE; GDI convertirà quindi le curve di Bezier in linee e chiamerà di nuovo DrvStrokeAndFillPath . Se il driver del dispositivo restituisce di nuovo FALSE, GDI semplifica ulteriormente la chiamata, effettua chiamate a DrvStrokePath e DrvFillPath o a DrvBitBlt, a seconda della combinazione e della larghezza delle linee che costituiscono il percorso.

La modalità mix definisce il modo in cui il modello in ingresso deve essere misto con i dati già presenti nell'area del dispositivo. Il tipo di dati MIX è costituito da due valori di operazione raster binaria (ROP2) compressi in una singola ULONG. Il byte più basso definisce l'operazione raster in primo piano; il byte successivo definisce l'operazione raster in background. Per altre informazioni sui codici di operazione raster, vedere la documentazione di Microsoft Windows SDK.

Requisiti

   
Piattaforma di destinazione Desktop
Intestazione winddi.h (include Winddi.h)

Vedi anche

CLIPOBJ

DrvBitBlt

DrvFillPath

Drvstrokepath

LINEATTRS

PATHOBJ

SURFOBJ

XFORMOBJ