Obiekty graficzneGraphic Objects

System Windows udostępnia różnorodne narzędzia do rysowania, które mogą być używane w kontekstach urządzeń.Windows provides a variety of drawing tools to use in device contexts. Udostępnia pióra do rysowania linii, pędzli do wypełnienia wnętrza oraz czcionek do rysowania tekstu.It provides pens to draw lines, brushes to fill interiors, and fonts to draw text. MFC oferuje klasy obiektów graficznych równoważne narzędziom do rysowania w systemie Windows.MFC provides graphic-object classes equivalent to the drawing tools in Windows. W poniższej tabeli przedstawiono dostępne klasy i równoważne typy uchwytów interfejsu urządzenia graficznego (GDI) systemu Windows.The table below shows the available classes and the equivalent Windows graphics device interface (GDI) handle types.

Uwaga

Aby uzyskać więcej informacji, zobacz dokumentację zestawu GDI+ SDK.For more information, see the GDI+ SDK documentation.

W tym artykule opisano sposób użycia tych klas obiektów graficznych:This article explains the use of these graphic-object classes:

Klasy dla obiektów GDI systemu WindowsClasses for Windows GDI Objects

KlasaClass Typ uchwytu systemu WindowsWindows handle type
CPenCPen HPEN
CBrushCBrush HBRUSH
CFontCFont HFONTHFONT
CBitmapCBitmap HBITMAP
CPaletteCPalette HPALETTE
CRgnCRgn HRGNHRGN

Uwaga

Klasa funkcji CImage zapewnia obsługę ulepszonej mapy bitowej.The class CImage provides enhanced bitmap support.

Każda klasa obiektu graficznego w bibliotece klas ma Konstruktor, który umożliwia tworzenie obiektów graficznych tej klasy, które należy następnie zainicjować przy użyciu odpowiedniej funkcji tworzenia, takiej jak CreatePen .Each graphic-object class in the class library has a constructor that allows you to create graphic objects of that class, which you must then initialize with the appropriate create function, such as CreatePen.

Każda klasa obiektu graficznego w bibliotece klas ma operator rzutowania, który będzie rzutować obiekt MFC do skojarzonego dojścia systemu Windows.Each graphic-object class in the class library has a cast operator that will cast an MFC object to the associated Windows handle. Wyniki dojścia są prawidłowe do momentu odłączenia skojarzonego obiektu.The resulting handle is valid until the associated object detaches it. Użyj Detach funkcji składowej obiektu, aby odłączyć dojście.Use the object's Detach member function to detach the handle.

Poniższy kod rzutuje CPen obiekt do dojścia systemu Windows:The following code casts a CPen object to a Windows handle:

CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255, 255, 0));
HPEN hMyPen = (HPEN)myPen;

Aby utworzyć obiekt graficzny w kontekście urządzeniaTo create a graphic object in a device context

  1. Zdefiniuj obiekt graficzny w ramce stosu.Define a graphic object on the stack frame. Zainicjuj obiekt za pomocą funkcji tworzenia specyficznej dla typu, takiej jak CreatePen .Initialize the object with the type-specific create function, such as CreatePen. Alternatywnie można zainicjować obiekt w konstruktorze.Alternatively, initialize the object in the constructor. Zapoznaj się z omówieniem tworzenia jednego etapu i dwuetapowego, który zawiera przykładowy kod.See the discussion of one-stage and two-stage creation, which provides example code.

  2. Zaznacz obiekt w bieżącym kontekście urządzeniai Zapisz stary obiekt graficzny, który został wybrany wcześniej.Select the object into the current device context, saving the old graphic object that was selected before.

  3. Po zakończeniu z bieżącym obiektem graficznym, wybierz stary obiekt graficzny z powrotem do kontekstu urządzenia, aby przywrócić jego stan.When done with the current graphic object, select the old graphic object back into the device context to restore its state.

  4. Zezwalaj na automatyczne usuwanie obiektu graficznego przydzieloną ramką po zakończeniu zakresu.Allow the frame-allocated graphic object to be deleted automatically when the scope is exited.

Uwaga

Jeśli będziesz używać obiektu graficznego wielokrotnie, możesz przydzielić go raz i wybrać go w kontekście urządzenia zawsze wtedy, gdy jest to potrzebne.If you will be using a graphic object repeatedly, you can allocate it once and select it into a device context each time it is needed. Pamiętaj, aby usunąć taki obiekt, gdy nie jest już potrzebny.Be sure to delete such an object when you no longer need it.

Co chcesz dowiedzieć się więcej oWhat do you want to know more about

Zobacz teżSee also

Obiekty oknaWindow Objects