CPen::CreatePen
Crée un cosmétique logique ou un stylet géométrique avec le style, la largeur, les attributs spécifiés du pinceau, et l'attache à l'objet d' CPen .
BOOL CreatePen(
int nPenStyle,
int nWidth,
COLORREF crColor
);
BOOL CreatePen(
int nPenStyle,
int nWidth,
const LOGBRUSH* pLogBrush,
int nStyleCount = 0,
const DWORD* lpStyle = NULL
);
Paramètres
nPenStyle
Spécifie le style du stylet. Pour obtenir la liste des valeurs possibles, consultez le paramètre d' nPenStyle dans le constructeur de CPen .nWidth
Spécifie la largeur du stylet.Pour la première version d' CreatePen, si cette valeur est 0, la largeur des unités est toujours 1 pixel, quel que soit le mode de mappage.
Pour la deuxième version d' CreatePen, si nPenStyle est PS_GEOMETRIC, la largeur est spécifiée en unités logiques. Si nPenStyle est PS_COSMETIC, la largeur doit être définie à 1.
crColor
Contient une couleur RVB pour le stylet.pLogBrush
Pointe vers une structure de LOGBRUSH . Si nPenStyle est PS_COSMETIC, le membre de lbColor de la structure d' LOGBRUSH spécifie la couleur du stylet et le membre d' lbStyle de la structure d' LOGBRUSH doit avoir la valeur BS_SOLID. Si nPenStyle est PS_GEOMETRIC, tous les membres doivent être utilisés pour spécifier les attributs de pinceau du stylet.nStyleCount
Spécifie la durée, en unités de mot dupliqué, du tableau d' lpStyle . Cette valeur doit être égal à zéro si nPenStyle n'est pas PS_USERSTYLE.lpStyle
Pointe vers un tableau de valeurs de mot double. La première valeur spécifie la longueur du premier tiret dans un style défini par l'utilisateur, la deuxième valeur spécifie la longueur du premier espace, et ainsi de suite. Ce pointeur doit être NULL si nPenStyle n'est pas PS_USERSTYLE.
Valeur de retour
Une valeur différente de zéro en cas de réussite, ou zéro si la méthode échoue.
Notes
La première version d' CreatePen initialise un stylet avec le style, la largeur, et la couleur spécifiés. Le stylet peut ensuite être sélectionné comme stylet actuel pour n'importe quel contexte de périphérique.
Les stylets qui ont une largeur supérieure à 1 pixel doivent toujours avoir le style de PS_NULL, de PS_SOLID, ou de PS_INSIDEFRAME .
Si un stylet a le style de PS_INSIDEFRAME et une couleur qui ne correspond pas à une couleur dans la table des couleurs logique, le stylet est dessiné avec une couleur dégradée. Le style de stylet de PS_SOLID ne peut pas être utilisé pour créer un stylet avec une couleur dégradée. Le style PS_INSIDEFRAME identique à PS_SOLID si la largeur du stylet est inférieure ou égale à 1.
La deuxième version d' CreatePen initialise un cosmétique logique ou un stylet géométrique qui a le style, la largeur, les attributs spécifiés du pinceau. La largeur d'un stylet cosmétique est toujours 1 ; la largeur d'un stylet géométrique est toujours spécifiée en unités du monde. Une fois qu'une application crée un stylet logique, il peut sélectionner ce stylet dans un contexte de périphérique en appelant la fonction de CDC::SelectObject . Après qu'un stylet est sélectionné dans un contexte de périphérique, il peut être utilisé pour dessiner des lignes et des courbes.
Si nPenStyle est PS_COSMETIC et PS_USERSTYLE, les entrées de la matrice d' lpStyle spécifient des longueurs des tirets et des espaces dans les unités de style. Une unité de style définie par le périphérique dans lequel le stylet est utilisé pour dessiner une ligne.
Si nPenStyle est PS_GEOMETRIC et PS_USERSTYLE, les entrées de la matrice d' lpStyle spécifient des longueurs des tirets et des espaces en unités logiques.
Si nPenStyle est PS_ALTERNATE, l'unité de style est ignorée et chaque autre pixel est défini.
Lorsqu'une application ne nécessite plus un stylet donné, il doit appeler la fonction membre de CGdiObject::DeleteObject ou destruction de l'objet d' CPen ainsi la ressource n'est plus utilisé. Une application ne doit pas supprimer un stylet lorsque le stylet est sélectionné dans un contexte de périphérique.
Exemple
CPen myPen1, myPen2;
// Create a solid red pen of width 2.
myPen1.CreatePen(PS_SOLID, 2, RGB(255,0,0));
// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
myPen2.CreatePen(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);
Configuration requise
en-tête : afxwin.h