Cihaz Bağlamları
Cihaz bağlamı, bir cihazın görüntü veya yazıcı gibi çizim öznitelikleri hakkında bilgi içeren bir Windows veri yapısıdır. Tüm çizim çağrıları, çizgi, şekil ve metin çizmek için Windows API'lerini kapsülleyen bir cihaz bağlamı nesnesi aracılığıyla yapılır. Cihaz bağlamları, Windows'ta cihazdan bağımsız çizime izin verir. Cihaz bağlamları ekrana, yazıcıya veya meta dosyaya çizim yapmak için kullanılabilir.
CPaintDC nesneleri Windows'un ortak deyimini kapsüller, işlevi çağırır BeginPaint
, ardından cihaz bağlamında çizim yaparak işlevi çağırır EndPaint
. Oluşturucu CPaintDC
sizin için, BeginPaint
yıkıcı ise öğesini çağırır EndPaint
. Basitleştirilmiş işlem, CDC nesnesini oluşturmak, çizmek ve sonra nesneyi yok etmektirCDC
. Çerçevede, bu işlemin çoğu bile otomatikleştirilmiştir. Özellikle, işlevinize OnDraw
önceden hazırlanmış bir CPaintDC
(aracılığıyla OnPrepareDC
) geçirilir ve içine çekmeniz yeterlidir. Çerçeve tarafından yok edilir ve işlevinize OnDraw
yapılan çağrıdan sonra temel alınan cihaz bağlamı Windows'a gönderilir.
CClientDC nesneleri, bir pencerenin yalnızca istemci alanını temsil eden bir cihaz bağlamıyla çalışmayı kapsüller. Oluşturucu CClientDC
işlevi çağırır GetDC
ve yıkıcı işlevi çağırır ReleaseDC
. CWindowDC nesneleri, çerçevesi de dahil olmak üzere tüm pencereyi temsil eden bir cihaz bağlamını kapsüller.
CMetaFileDC nesneleri, çizimi bir Windows meta dosyası halinde kapsüller. 'a OnDraw
geçirilenin CPaintDC
aksine, bu durumda OnPrepareDC'yi kendiniz çağırmanız gerekir.
Fare Çizimi
Çerçeve programındaki çizimlerin çoğu (ve dolayısıyla cihaz bağlamı çalışmalarının çoğu), görünümün OnDraw
üye işlevinde gerçekleştirilir. Ancak, cihaz bağlamı nesnelerini başka amaçlarla kullanmaya devam edebilirsiniz. Örneğin, bir görünümde fare hareketiyle ilgili izleme geri bildirimi sağlamak için OnDraw
çağrılmayı beklemeden doğrudan görünüme çizim yapmanız gerekir.
Böyle bir durumda, doğrudan görünüme çizmek için CClientDC cihaz bağlamı nesnesi kullanabilirsiniz.