Udostępnij za pośrednictwem


CPen::CreatePen

Tworzy logiczne pióro kosmetycznych lub geometryczne z określonego stylu, szerokości i atrybuty pędzla i dołącza go do CPen obiektu.

BOOL CreatePen( 
   int nPenStyle, 
   int nWidth, 
   COLORREF crColor  
); 
BOOL CreatePen( 
   int nPenStyle, 
   int nWidth, 
   const LOGBRUSH* pLogBrush, 
   int nStyleCount = 0, 
   const DWORD* lpStyle = NULL  
);

Parametry

  • nPenStyle
    Określa styl pióra.Aby uzyskać listę możliwych wartości, zobacz nPenStyle parametr w CPen Konstruktor.

  • nWidth
    Określa szerokość pióra.

    • Dla pierwszej wersji programu CreatePen, jeśli ta wartość wynosi 0, szerokość w jednostkach urządzenia jest zawsze 1 piksel, niezależnie od trybu mapowania.

    • Druga wersja dla CreatePen, jeśli nPenStyle jest PS_GEOMETRIC, szerokość jest podana w jednostkach logicznych.Jeśli nPenStyle jest PS_COSMETIC, szerokość musi być ustawiona na 1.

  • crColor
    Zawiera kolor RGB pióra.

  • pLogBrush
    Wskazuje na LOGBRUSH struktury.Jeśli nPenStyle jest PS_COSMETIC, lbColor członek LOGBRUSH struktury Określa kolor pióra i lbStyle członek LOGBRUSH struktura musi być ustawiona na BS_SOLID.Jeśli nPenStyle jest PS_GEOMETRIC, wszystkie elementy członkowskie muszą być używane do określania atrybutów pędzla pióra.

  • nStyleCount
    Określa długość, w jednostkach bitowego, z lpStyle tablicy.Wartość ta musi być zero, jeśli nPenStyle nie jest PS_USERSTYLE.

  • lpStyle
    Punkty do tablicy wartości bitowego.Pierwsza wartość określa długość pierwszy myślnik w stylu użytkownika, druga wartość określa długość na pierwszym miejscu i tak dalej.Wskaźnik ten musi być NULL czy nPenStyle nie jest PS_USERSTYLE.

Wartość zwracana

Niezerowa, jeśli kończy się pomyślnie, lub zero, jeśli metoda nie działa.

Uwagi

Pierwsza wersja CreatePen inicjuje pióro z określonego stylu, szerokość i kolor.Piórem można następnie wybrane bieżące pióro do wszystkich kontekstów urządzeń.

Pióra, które mają szerokość większą niż 1 piksel powinien zawsze mieć albo PS_NULL, PS_SOLID, lub PS_INSIDEFRAME styl.

Jeśli pióro ma PS_INSIDEFRAME styl i kolor, który nie pasuje do koloru w tablicy kolorów logiczne kolor symulowany rysowanej piórem.PS_SOLID styl pióra, nie można utworzyć pióra z kolor symulowany.Styl PS_INSIDEFRAME jest identyczny z PS_SOLID Jeśli szerokość pióra jest mniejsza lub równa 1.

Druga wersja z CreatePen inicjuje pióro logiczne kosmetycznych lub geometryczne, która ma określony styl, szerokość i szczotki atrybutów.Szerokość pióra kosmetycznych jest zawsze 1; szerokość pióra geometrycznej jest zawsze określona w jednostkach.Po aplikacji tworzy logiczne Pióro, to wybierz że pióro do kontekstu urządzenia przez wywołanie CDC::SelectObject funkcji.Po wybraniu pióra do kontekstu urządzenia służy do rysowania linii i krzywych.

  • Jeśli nPenStyle jest PS_COSMETIC i PS_USERSTYLE, wpisy w lpStyle tablicy określ długość i spacje w jednostkach stylu.Jednostka styl jest zdefiniowany przez urządzenie, Pióro służy do rysowania linii.

  • Jeśli nPenStyle jest PS_GEOMETRIC i PS_USERSTYLE, wpisy w lpStyle tablicy określ długość i spacje w jednostkach logicznych.

  • Jeśli nPenStyle jest PS_ALTERNATE, jednostkę stylu jest ignorowany, a co drugi piksel jest ustawiona.

Gdy aplikacja nie wymaga już danym Pióro, powinna wywołać CGdiObject::DeleteObject Członkowskich funkcji lub zniszczyć CPen obiekt zasób jest już w użyciu.Aplikacja nie należy usuwać Pióro, po wybraniu piórem w kontekście urządzenia.

Przykład

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

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CPen

Diagram hierarchii

CPen::CreatePenIndirect

CPen::CPen

CGdiObject::DeleteObject

LOGBRUSH