Alokowanie zasobów GDI
W tym artykule wyjaśniono, jak przydzielić i cofnąć przydział obiektów interfejsu graficznego (GDI) systemu Windows wymaganych do drukowania.
Uwaga
Aby uzyskać więcej informacji, zobacz dokumentację zestawu GDI+ SDK.
Załóżmy, że do drukowania należy używać niektórych czcionek, piór lub innych obiektów GDI, ale nie do wyświetlania ekranu. Ze względu na wymaganą pamięć nieefektywne jest przydzielanie tych obiektów podczas uruchamiania aplikacji. Gdy aplikacja nie drukuje dokumentu, ta pamięć może być potrzebna do innych celów. Lepiej przydzielić je po rozpoczęciu drukowania, a następnie usunąć je po zakończeniu drukowania.
Aby przydzielić te obiekty GDI, przesłoń funkcję składową OnBeginPrinting . Ta funkcja jest odpowiednia do tego celu z dwóch powodów: struktura wywołuje tę funkcję raz na początku każdego zadania drukowania i, w przeciwieństwie do onPreparePrinting, ta funkcja ma dostęp do obiektu CDC reprezentującego sterownik urządzenia drukarki. Te obiekty można przechowywać do użycia podczas zadania drukowania, definiując zmienne składowe w klasie widoku, CFont *
które wskazują obiekty GDI (na przykład elementy członkowskie itd.).
Aby użyć utworzonych obiektów GDI, wybierz je w kontekście urządzenia drukarki w funkcji składowej OnPrint . Jeśli potrzebujesz różnych obiektów GDI dla różnych stron dokumentu, możesz sprawdzić m_nCurPage
składową struktury CPrintInfo i wybrać odpowiednio obiekt GDI. Jeśli potrzebujesz obiektu GDI dla kilku kolejnych stron, system Windows wymaga wybrania go w kontekście urządzenia za każdym razem, gdy OnPrint
jest wywoływany.
Aby cofnąć przydział tych obiektów GDI, przesłoń funkcję składową OnEndPrinting . Platforma wywołuje tę funkcję na końcu każdego zadania drukowania, co daje możliwość cofnięcia przydziału obiektów GDI specyficznych dla drukowania, zanim aplikacja powróci do innych zadań.