Condividi tramite


Funzione CreatePen (wingdi.h)

La funzione CreatePen crea una penna logica con lo stile, la larghezza e il colore specificati. La penna può successivamente essere selezionata in un contesto di dispositivo e usata per disegnare linee e curve.

Sintassi

HPEN CreatePen(
  [in] int      iStyle,
  [in] int      cWidth,
  [in] COLORREF color
);

Parametri

[in] iStyle

Stile penna. Può essere uno dei valori seguenti.

Valore Significato
PS_SOLID
La penna è solida.
PS_DASH
La penna è tratteggiata. Questo stile è valido solo quando la larghezza della penna è una o meno in unità di dispositivo.
PS_DOT
La penna è punteggiata. Questo stile è valido solo quando la larghezza della penna è una o meno in unità di dispositivo.
PS_DASHDOT
La penna ha trattini alternati e punti. Questo stile è valido solo quando la larghezza della penna è una o meno in unità di dispositivo.
PS_DASHDOTDOT
La penna ha trattini alternati e punti doppi. Questo stile è valido solo quando la larghezza della penna è una o meno in unità di dispositivo.
PS_NULL
La penna è invisibile.
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 le penne geometriche.

[in] cWidth

Larghezza della penna, in unità logiche. Se nWidth è zero, la penna è un'unica larghezza di pixel, indipendentemente dalla trasformazione corrente.

CreatePen restituisce una penna con la larghezza specificata, ma con lo stile PS_SOLID se si specifica una larghezza maggiore di una per gli stili seguenti: PS_DASH, PS_DOT, PS_DASHDOT PS_DASHDOTDOT.

[in] color

Riferimento di colore per il colore della penna. Per generare una struttura COLORREF , utilizzare la macro RGB .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un handle che identifica una penna logica.

Se la funzione ha esito negativo, il valore restituito è NULL.

Commenti

Dopo che un'applicazione crea una penna logica, può selezionarla in un contesto di dispositivo chiamando la funzione SelectObject . Dopo aver selezionato una penna in un contesto di dispositivo, può essere usata per disegnare linee e curve.

Se il valore specificato dal parametro nWidth è zero, una linea disegnata con la penna creata è sempre un'unica larghezza di pixel indipendentemente dalla trasformazione corrente.

Se il valore specificato da nWidth è maggiore di 1, il parametro fnPenStyle deve essere PS_NULL, PS_SOLID o PS_INSIDEFRAME.

Se il valore specificato da nWidth è maggiore di 1 e fnPenStyle è PS_INSIDEFRAME, la linea associata alla penna viene disegnata all'interno del frame di tutte le primitive ad eccezione dei poligoni e delle polilinee.

Se il valore specificato da nWidth è maggiore di 1, fnPenStyle è PS_INSIDEFRAME e il colore specificato dal parametro crColor non corrisponde a una delle voci nella tavolozza logica, il sistema disegna le linee utilizzando un colore dithering. I colori dithering non sono disponibili con penne a tinta unita.

Quando si usa un parametro iStyle di PS_DASH, PS_DOT, PS_DASHDOT o PS_DASHDOTDOT, per rendere trasparenti le lacune tra i trattini o i punti, usare SetBkMode per impostare la modalità su TRANSPARENT.

Quando la penna non è più necessaria, chiamare la funzione DeleteObject per eliminarla.

ICM: Al momento della creazione non viene eseguita alcuna gestione dei colori. Tuttavia, la gestione dei colori viene eseguita quando la penna viene selezionata in un contesto di dispositivo abilitato per ICM.

Esempio

Per un esempio, vedere Creazione di penne colorate e pennelli.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h (include Windows.h)
Libreria Gdi32.lib
DLL Gdi32.dll

Vedi anche

COLORREF

CreatePenIndirect

DeleteObject

ExtCreatePen

Getobject

Funzioni della penna

Panoramica delle penne

RGB

SelectObject