Přidělování prostředků GDI
Tento článek vysvětluje, jak přidělit a navrátit Windows grafických zařízení (GDI) rozhraní objektů potřebné pro tisk.
[!POZNÁMKA]
Rozhraní GDI + je součástí systému Windows XP a je k dispozici jako redistribuovatelná verze pro systém Windows NT 4.0 s aktualizací SP6 Windows 2000, Windows 98 a Windows Me.Chcete-li stáhnout nejnovější redistribuovatelné verze, viz https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm.Další informace naleznete v dokumentaci rozhraní GDI + SDK na webu MSDN: https://msdn.microsoft.com/library/default.asp?url=/ library/en-us/gdicpp/GDIPlus/GDIPlus.asp.
Předpokládejme, že potřebujete použít některá písma, pera nebo jiné objekty GDI pro tisk, ale ne pro zobrazení na obrazovce.Díky paměti, které potřebují je neefektivní přidělování těchto objektů při spuštění aplikace.Pokud aplikace není tisk dokumentu, že paměť může být požadována pro jiné účely.Je lepší rozdělit je při zahájení tisku a při tisku skončí jejich odstranění.
Přidělit tyto objekty GDI, přepsat OnBeginPrinting členské funkce.Tato funkce je vhodné pro tento účel dva důvody: rozhraní framework volá tuto funkci, jednou na začátku každé tiskové úlohy a na rozdíl od OnPreparePrinting, tato funkce má přístup k CSP objekt představující ovladač tiskárny.Definováním členské proměnné v zobrazení třídy, které odkazují na objekty GDI můžete ukládat tyto objekty pro použití během tisku úlohy (například CFont * členy a tak dále).
Použití vytvořených objektů GDI, vyberte je v kontextu zařízení tiskárny v při tisku členské funkce.Pokud potřebujete různé objekty GDI pro různé stránky v dokumentu, můžete zkontrolovat m_nCurPage členem CPrintInfo strukturu a proto vyberte objekt GDI.Pokud potřebujete objekt GDI několika po sobě následujících stránek, vyžaduje systému Windows musíte vybrat do kontextu zařízení pokaždé, když OnPrint se nazývá.
Chcete-li navrátit tyto objekty GDI, přepsat OnEndPrinting členské funkce.Architektura volá tuto funkci na konci každé tiskové úlohy, což vám dává možnost navrátit GDI objektů specifických pro tisk před vrátí aplikace s jinými úkoly.