Alokowanie zasobów GDI
W tym artykule omówiono zaalokować i deallocate obiekty interfejsu (GDI) urządzenia grafiki Windows potrzebne do drukowania.
[!UWAGA]
GDI + jest dołączony do systemu Windows XP i jest dostępny jako pakiet redystrybucyjny dla systemu Windows NT 4.0 SP6, Windows 2000, Windows 98 i Windows Me.Aby pobrać najnowsze pakietu redystrybucyjnego, zobacz https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm.Więcej informacji na ten temat można znaleźć w dokumentacji interfejsu GDI + SDK w witrynie MSDN: https://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp.
Załóżmy, że trzeba użyć niektórych czcionek, pióra lub inne obiekty GDI do druku, ale nie dla ekranu.Z powodu pamięci potrzebnych jest nieefektywne przydzielić te obiekty po uruchomieniu aplikacji.Podczas stosowania nie jest drukowania dokumentu, że pamięć może być potrzebne do innych celów.Jest lepiej przydzielić je, gdy rozpocznie się drukowanie, a następnie usunąć podczas drukowania kończy się.
Przydzielić te obiekty GDI, należy zastąpić OnBeginPrinting funkcji składowej.Ta funkcja jest dobrze nadają się do tego celu z dwóch powodów: ramach wywołuje tę funkcję raz na początku każdego zadania drukowania i, w przeciwieństwie do OnPreparePrinting, funkcja ta ma dostęp do CDC obiekt reprezentujący sterownika drukarki.Te obiekty do użycia podczas wykonywania zadania drukowania można przechowywać przez definiowanie zmiennych w klasie Widok wskaż obiektów GDI (na przykład CFont * członków i tak dalej).
Aby użyć obiektów GDI, które zostały utworzone, zaznacz je do kontekstu urządzenia drukarki w OnPrint funkcji składowej.Jeśli potrzebujesz różnych obiektów GDI dla różnych stron dokumentu, można sprawdzić m_nCurPage członek CPrintInfo struktury i wybierz odpowiednio obiektów GDI.Dla kilku kolejnych stron, należy obiektów GDI systemu Windows wymaga wybrania go do kontekstu urządzenia przy każdym OnPrint jest wywoływana.
Aby cofnąć te obiekty GDI, należy zastąpić OnEndPrinting funkcji składowej.Ramy wywołuje tę funkcję na końcu każdego zadania drukowania, zapewniając możliwość deallocate specyficzne drukowanie obiektów GDI, zanim aplikacja zwraca się do innych zadań.