Aracılığıyla paylaş


GDI Kaynaklarını Ayırma

Bu makalede, yazdırma için gereken Windows grafik cihaz arabirimi (GDI) nesnelerini ayırma ve serbest bırakma işlemleri açıklanmaktadır.

Dekont

Daha fazla bilgi için GDI+ SDK belgelerine bakın.

Yazdırma için belirli yazı tiplerini, kalemleri veya diğer GDI nesnelerini kullanmanız gerektiğini, ancak ekran görüntüsü için kullanmamanızı varsayalım. Gerekli bellek nedeniyle, uygulama başlatıldığında bu nesneleri ayırmak verimsizdir. Uygulama bir belgeyi yazdırmadığında, başka amaçlar için bu belleğe ihtiyaç duyulabilir. Yazdırma başladığında bunları ayırmak ve yazdırma sona erdiğinde silmek daha iyidir.

Bu GDI nesnelerini ayırmak için OnBeginPrinting üye işlevini geçersiz kılın. Bu işlev bu amaca iki nedenden dolayı uygundur: çerçeve bu işlevi her yazdırma işinin başında bir kez çağırır ve OnPreparePrinting'in aksine, bu işlevin yazıcı cihaz sürücüsünü temsil eden CDC nesnesine erişimi vardır. Bu nesneleri, görünüm sınıfınızda GDI nesnelerine (örneğin, CFont * üyeler vb.) işaret eden üye değişkenleri tanımlayarak yazdırma işi sırasında kullanılmak üzere depolayabilirsiniz.

Oluşturduğunuz GDI nesnelerini kullanmak için, OnPrint üye işlevinde bunları yazıcı cihazı bağlamında seçin. Belgenin farklı sayfaları için farklı GDI nesnelerine ihtiyacınız varsa, CPrintInfo yapısının üyesini inceleyebilir m_nCurPage ve buna göre GDI nesnesini seçebilirsiniz. Ardışık birkaç sayfa için bir GDI nesnesine ihtiyacınız varsa, Windows her OnPrint çağrıldığında bunu cihaz bağlamında seçmenizi gerektirir.

Bu GDI nesnelerini serbest bırakmak için OnEndPrinting üye işlevini geçersiz kılın. Çerçeve, her yazdırma işinin sonunda bu işlevi çağırır ve uygulama diğer görevlere dönmeden önce yazdırmaya özgü GDI nesnelerini serbest bırakma fırsatı verir.

Ayrıca bkz.

Yazdırma
Varsayılan Yazdırmayı Yapma