Struttura EXTLOGPEN (wingdi.h)

La struttura EXTLOGPEN definisce gli attributi di stile, larghezza e pennello della penna per una penna estesa. Questa struttura viene utilizzata dalla funzione GetObject quando recupera una descrizione di una penna creata quando un'applicazione ha chiamato la funzione ExtCreatePen .

Sintassi

typedef struct tagEXTLOGPEN {
  DWORD     elpPenStyle;
  DWORD     elpWidth;
  UINT      elpBrushStyle;
  COLORREF  elpColor;
  ULONG_PTR elpHatch;
  DWORD     elpNumEntries;
  DWORD     elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;

Members

elpPenStyle

Combinazione di tipo penna, stile, stile estremità finale e stile join. I valori di ogni categoria possono essere recuperati usando un operatore AND bit per bit con la maschera appropriata.

Il membro elpPenStyle mascherato con PS_TYPE_MASK ha uno dei valori di tipo penna seguenti.

Valore Significato
PS_GEOMETRIC La penna è geometrica.
PS_COSMETIC La penna è cosmetica.
 

Il membro elpPenStyle mascherato con PS_STYLE_MASK ha uno dei valori di stile della penna seguenti:

Valore Significato
PS_DASH La penna è tratteggiata.
PS_DASHDOT La penna ha trattini alternati e punti.
PS_DASHDOTDOT La penna ha trattini alternati e punti doppi.
PS_DOT La penna è punteggiata.
PS_INSIDEFRAME La penna è solida. Quando questa penna viene utilizzata in qualsiasi funzione di disegno GDI che accetta un rettangolo di delimitazione, le dimensioni della figura vengono compattate in modo che si adatti interamente al rettangolo di delimitazione, tenendo conto della larghezza della penna. Questo vale solo per PS_GEOMETRIC penne.
PS_NULL La penna è invisibile.
PS_SOLID La penna è solida.
PS_USERSTYLE La penna usa una matrice di stili fornita dall'utente.
 

La categoria seguente si applica solo alle penne PS_GEOMETRIC. Il membro elpPenStyle mascherato con PS_ENDCAP_MASK ha uno dei valori di estremità finale seguenti.

Valore Significato
PS_ENDCAP_FLAT Le estremità finali della linea sono flat.
PS_ENDCAP_ROUND Le estremità di linea sono arrotondate.
PS_ENDCAP_SQUARE Le estremità di linea sono quadrate.
 

La categoria seguente si applica solo alle penne PS_GEOMETRIC. Il membro elpPenStyle mascherato con PS_JOIN_MASK ha uno dei valori di join seguenti.

Valore Significato
PS_JOIN_BEVEL I join di linea vengono smussati.
PS_JOIN_MITER I join di riga vengono impostati correttamente quando sono entro il limite corrente impostato dalla funzione SetMiterLimit . Un join viene smussato quando supera il limite.
PS_JOIN_ROUND I join di linea sono arrotondati.

elpWidth

Larghezza della penna. Se il membro elpPenStyle è PS_GEOMETRIC, questo valore corrisponde alla larghezza della linea in unità logiche. In caso contrario, le linee sono cosmetiche e questo valore è 1, che indica una linea con una larghezza di un pixel.

elpBrushStyle

Stile pennello della penna. Il valore del membro elpBrushStyle può essere uno dei seguenti.

Valore Significato
BS_DIBPATTERN Specifica un pennello modello definito da una specifica DIB. Se elpBrushStyle è BS_DIBPATTERN, il membro elpHatch contiene un handle per un DIB compresso. Per altre informazioni, vedere discussione in elpHatch
BS_DIBPATTERNPT Specifica un pennello modello definito da una specifica DIB. Se elpBrushStyle è BS_DIBPATTERNPT, il membro elpHatch contiene un puntatore a un DIB compresso. Per altre informazioni, vedere discussione in elpHatch.
BS_HATCHED Specifica un pennello tratteggio.
BS_HOLLOW Specifica un pennello vuoto o NULL .
BS_PATTERN Specifica un pennello modello definito da una bitmap di memoria.
BS_SOLID Specifica un pennello solido.

elpColor

Se elpBrushStyle è BS_SOLID o BS_HATCHED, elpColor specifica il colore in cui deve essere disegnata la penna. Per BS_HATCHED, le funzioni SetBkMode e SetBkColor determinano il colore di sfondo.

Se elpBrushStyle è BS_HOLLOW o BS_PATTERN, elpColor viene ignorato.

Se elpBrushStyle è BS_DIBPATTERN o BS_DIBPATTERNPT, la parola in ordine basso di elpColor specifica se il membro bmiColors della struttura BITMAPINFO contiene valori RGB espliciti o indici RGB nella tavolozza logica attualmente realizzata. Il valore elpColor deve essere uno dei seguenti.

Valore Significato
DIB_PAL_COLORS La tabella dei colori è costituita da una matrice di indici a 16 bit nella tavolozza logica attualmente realizzata.
DIB_RGB_COLORS La tabella dei colori contiene valori RGB letterali.
 

La macro RGB viene utilizzata per generare una struttura COLORREF .

elpHatch

Se elpBrushStyle è BS_PATTERN, elpHatch è un handle per la bitmap che definisce il modello.

Se elpBrushStyle è BS_SOLID o BS_HOLLOW, elpHatch viene ignorato.

Se elpBrushStyle è BS_DIBPATTERN, il membro elpHatch è un handle per un DIB compresso. Per ottenere questo handle, un'applicazione chiama la funzione GlobalAlloc con GMEM_MOVEABLE (o LocalAlloc con LMEM_MOVEABLE) per allocare un blocco di memoria e quindi riempie la memoria con il diB compresso. Un DIB compresso è costituito da una struttura BITMAPINFO immediatamente seguita dalla matrice di byte che definiscono i pixel della bitmap.

Se elpBrushStyle è BS_DIBPATTERNPT, il membro elpHatch è un puntatore a un DIB compresso. Il puntatore deriva dal blocco di memoria creato da LocalAlloc con LMEM_FIXED impostato o da GlobalAlloc con GMEM_FIXED impostato oppure è il puntatore restituito da una chiamata come LocalLock (handle_to_the_dib). Un DIB compresso è costituito da una struttura BITMAPINFO immediatamente seguita dalla matrice di byte che definiscono i pixel della bitmap.

Se elpBrushStyle è BS_HATCHED, il membro elpHatch specifica l'orientamento delle linee utilizzate per creare il tratteggio. Può essere uno dei valori seguenti.

Valore Significato
HS_BDIAGONAL Tratteggio verso l'alto di 45 gradi (da sinistra a destra)
HS_CROSS Crosshatch orizzontale e verticale
HS_DIAGCROSS Crosshatch a 45 gradi
HS_FDIAGONAL Tratteggio verso il basso di 45 gradi (da sinistra a destra)
HS_HORIZONTAL Tratteggio orizzontale
HS_VERTICAL Tratteggio verticale

elpNumEntries

Numero di voci nella matrice di stile nel membro elpStyleEntry . Questo valore è zero se elpPenStyle non specifica PS_USERSTYLE.

elpStyleEntry[1]

Matrice di stile fornita dall'utente. La matrice viene specificata con una lunghezza finita, ma viene usata come se ripetuta per un periodo illimitato. La prima voce nella matrice specifica la lunghezza del primo trattino. La seconda voce specifica la lunghezza del primo gap. Successivamente, lunghezze di trattini e spazi alternati.

Se elpWidth specifica linee geometriche, le lunghezze sono in unità logiche. In caso contrario, le linee sono cosmetiche e lunghezze sono in unità di dispositivo.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione wingdi.h (include Windows.h)

Vedi anche

BITMAPINFO

COLORREF

ExtCreatePen

Getobject

Strutture della penna

Panoramica delle penne

RGB

SetBkColor

SetBkMode