CPen::CPen
Costruisce un oggetto CPen.
CPen( );
CPen(
int nPenStyle,
int nWidth,
COLORREF crColor
);
CPen(
int nPenStyle,
int nWidth,
const LOGBRUSH* pLogBrush,
int nStyleCount = 0,
const DWORD* lpStyle = NULL
);
Parametri
nPenStyle
Specifica lo stile della penna. Questo parametro nella prima versione del costruttore può essere uno dei seguenti valori:PS_SOLID crea una penna solida.
PS_DASH crea una penna tratteggiata. Valido solo quando la larghezza della penna è 1 o inferiore, in unità.
PS_DOT crea una penna tratteggiata. Valido solo quando la larghezza della penna è 1 o inferiore, in unità.
PS_DASHDOT crea una penna con trattini alternati e punti. Valido solo quando la larghezza della penna è 1 o inferiore, in unità.
PS_DASHDOTDOT crea una penna con trattini alternati e i punti doppi. Valido solo quando la larghezza della penna è 1 o inferiore, in unità.
PS_NULL crea una penna null.
PS_INSIDEFRAME crea una penna che disegna una linea nel frame di forme chiuse prodotte dalle funzioni di output di Windows GDI che specificano un rettangolo di delimitazione, ad esempio Ellisse, Rettangolo, RoundRect, Piefunzioni membro e Chord ). Quando viene utilizzato con le funzioni di output di Windows GDI che non specificano un rettangolo di delimitazione, ad esempio la funzione membro LineTo ), l'area di disegno della penna viene limitata da un frame.
La seconda versione del costruttore CPen specifica una combinazione di tipo, di stile, in the hood protetto e attributi di join. I valori da ogni categoria devono essere combinate utilizzando l'operatore OR bit per bit (|). Il tipo di penna può essere uno dei seguenti valori:
PS_GEOMETRIC crea una penna geometrica.
PS_COSMETIC crea una penna cosmetica.
La seconda versione del costruttore CPen aggiungere i seguenti stili della penna per nPenStyle:
PS_ALTERNATE crea una penna che imposta ogni altro pixel. (Questo stile è applicabile solo a penne cosmetiche).
PS_USERSTYLE crea una penna che utilizza una matrice di stile fornita dall'utente.
Il the hood protetto può essere uno dei seguenti valori:
I cappucci protetti diPS_ENDCAP_ROUND sono rotondi.
I cappucci protetti diPS_ENDCAP_SQUARE sono quadrato.
I cappucci protetti diPS_ENDCAP_FLAT sono piani.
Il join può essere uno dei seguenti valori:
Join diPS_JOIN_BEVEL sono smussati.
Join diPS_JOIN_MITER sono squadrati quando vengono dal limite corrente impostato dalla funzione SetMiterLimit. Se il join supera il limite, è smussata.
Join diPS_JOIN_ROUND sono rotondi.
nWidth
Specifica la larghezza della penna.Per la prima versione del costruttore, se questo valore è 0, la larghezza in unità è sempre 1 pixel, indipendentemente dalla modalità di mapping.
Per la seconda versione del costruttore, se nPenStyle è PS_GEOMETRIC, la larghezza riceve unità logiche fornite. Se nPenStyle è PS_COSMETIC, la larghezza deve essere impostata su 1.
crColor
Contiene un colore RGB per la penna.pLogBrush
Punta a una struttura LOGBRUSH. Se nPenStyle è PS_COSMETIC, il membro lbColor della struttura LOGBRUSH specifica il colore della penna e il membro lbStyle della struttura LOGBRUSH deve essere impostata su BS_SOLID. Se nPenStyle è PS_GEOMETRIC, tutti i membri devono essere utilizzati per specificare gli attributi del pennello della penna.nStyleCount
Specifica la lunghezza, in unità i primi quattro byte, della matrice lpStyle. Questo valore deve essere zero se nPenStyle non è PS_USERSTYLE.lpStyle
Punta a una matrice di valori dei primi quattro byte. Il primo valore specifica la lunghezza del primo trattino in uno stile definito, il secondo valore specifica la lunghezza del primo spazio, e così via. Questo puntatore deve essere NULL se nPenStyle non è PS_USERSTYLE.
Note
Se si utilizza il costruttore senza argomenti, è necessario inizializzare l'oggetto risultante CPen con CreatePen, CreatePenIndirect, le funzioni membro o CreateStockObject.
Se si utilizza il costruttore che accetta argomenti, non esiste alcuna ulteriore inizializzazione. Il costruttore con gli argomenti può generare un'eccezione se si verificano errori, mentre il costruttore senza argomenti riuscirà sempre.
Esempio
// Create a solid red pen of width 2.
CPen myPen1(PS_SOLID, 2, RGB(255,0,0));
// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
CPen myPen2(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);
Requisiti
Header: afxwin.h