Aracılığıyla paylaş


CDC Sınıf

Cihaz bağlamı nesnelerinin bir sınıfını tanımlar.

Sözdizimi

class CDC : public CObject

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CDC::CDC Bir CDC nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CDC::AbortDoc Üye işlevinin son çağrısından StartDoc sonra uygulamanın cihaza yazdığı her şeyi seçerek geçerli yazdırma işini sonlandırır.
CDC::AbortPath Cihaz bağlamındaki tüm yolları kapatır ve atar.
CDC::AddMetaFileComment Açıklamayı bir arabellekten belirtilen gelişmiş biçimli meta dosyaya kopyalar.
CDC::AlphaBlend Saydam veya yarı saydam piksellere sahip bit eşlemleri görüntüler.
CDC::AngleArc Bir çizgi kesimi ve bir yay çizer ve geçerli konumu yayının bitiş noktasına taşır.
CDC::Arc Eliptik bir yay çizer.
CDC::ArcTo Eliptik bir yay çizer. Bu işlev, geçerli konumun güncelleştirilmiş olması dışında öğesine benzer Arc.
CDC::Attach Bu CDC nesneye bir Windows cihaz bağlamı ekler.
CDC::BeginPath Cihaz bağlamında bir yol ayracı açar.
CDC::BitBlt Belirtilen cihaz bağlamından bit eşlem kopyalar.
CDC::Chord Bir akor çizer (elips ve çizgi kesiminin kesişimiyle sınırlanmış kapalı bir şekil).
CDC::CloseFigure Yoldaki açık bir şekli kapatır.
CDC::CreateCompatibleDC Başka bir cihaz bağlamıyla uyumlu bir bellek-cihaz bağlamı oluşturur. Bellekteki görüntüleri hazırlamak için kullanabilirsiniz.
CDC::CreateDC Belirli bir cihaz için bir cihaz bağlamı oluşturur.
CDC::CreateIC Belirli bir cihaz için bilgi bağlamı oluşturur. Bu, cihaz bağlamı oluşturmadan cihaz hakkında bilgi almak için hızlı bir yol sağlar.
CDC::DeleteDC Bu CDC nesneyle ilişkili Windows cihaz bağlamını siler.
CDC::DeleteTempMap tarafından oluşturulan geçici CDC nesneleri silmek için boşta kalma süresi işleyicisi tarafından CWinApp FromHandleçağrılır. Ayrıca cihaz bağlamını ayırır.
CDC::Detach Windows cihaz bağlamını bu CDC nesneden ayırır.
CDC::DPtoHIMETRIC Cihaz birimlerini birimlere HIMETRIC dönüştürür.
CDC::DPtoLP Cihaz birimlerini mantıksal birimlere dönüştürür.
CDC::Draw3dRect Üç boyutlu bir dikdörtgen çizer.
CDC::DrawDragRect Sürüklendiği dikdörtgeni siler ve yeniden çizer.
CDC::DrawEdge Dikdörtgenin kenarlarını çizer.
CDC::DrawEscape Grafik cihaz arabirimi (GDI) aracılığıyla doğrudan kullanılamamış bir video ekranının çizim özelliklerine erişir.
CDC::DrawFocusRect Odağı göstermek için kullanılan stilde bir dikdörtgen çizer.
CDC::DrawFrameControl Çerçeve denetimi çizin.
CDC::DrawIcon Bir simge çizer.
CDC::DrawState Bir görüntüyü görüntüler ve bir durumu belirtmek için görsel efekt uygular.
CDC::DrawText Belirtilen dikdörtgende biçimlendirilmiş metin çizer.
CDC::DrawTextEx Biçimlendirilmiş metni diğer biçimleri kullanarak belirtilen dikdörtgene çizer.
CDC::Ellipse Üç nokta çizer.
CDC::EndDoc Üye işlevi tarafından başlatılan yazdırma işini sonlandırır StartDoc .
CDC::EndPage Cihaz sürücüsüne bir sayfanın sona erdiğini bildirir.
CDC::EndPath Bir yol ayracı kapatır ve ayraç tarafından cihaz bağlamı içinde tanımlanan yolu seçer.
CDC::EnumObjects Cihaz bağlamında kullanılabilen kalemleri ve fırçaları numaralandırır.
CDC::Escape Uygulamaların GDI aracılığıyla belirli bir cihazdan doğrudan kullanılabilir olmayan tesislere erişmesine izin verir. Ayrıca Windows kaçış işlevlerine erişim sağlar. Bir uygulama tarafından yapılan kaçış çağrıları çevrilir ve cihaz sürücüsüne gönderilir.
CDC::ExcludeClipRect Mevcut kırpma bölgesi eksi belirtilen dikdörtgenden oluşan yeni bir kırpma bölgesi oluşturur.
CDC::ExcludeUpdateRgn Penceredeki güncelleştirilmiş bir bölgeyi kırpma bölgesinden dışlayarak, pencerenin geçersiz alanları içinde çizim yapılmasını engeller.
CDC::ExtFloodFill Bir alanı geçerli fırçayla doldurur. Üye işlevinden CDC::FloodFill daha fazla esneklik sağlar.
CDC::ExtTextOut Seçili durumdaki yazı tipini kullanarak dikdörtgen bir bölge içinde bir karakter dizesi yazar.
CDC::FillPath Geçerli yoldaki açık şekilleri kapatır ve geçerli fırçayı ve çokgen doldurma modunu kullanarak yolun içini doldurur.
CDC::FillRect Belirli bir fırçayı kullanarak belirli bir dikdörtgeni doldurur.
CDC::FillRgn Belirli bir bölgeyi belirtilen fırçayla doldurur.
CDC::FillSolidRect Dikdörtgeni düz bir renkle doldurur.
CDC::FlattenPath Seçilen yoldaki eğrileri geçerli cihaz bağlamı içine dönüştürür ve her eğriyi bir çizgi dizisine dönüştürür.
CDC::FloodFill Bir alanı geçerli fırçayla doldurur.
CDC::FrameRect Dikdörtgenin etrafına kenarlık çizer.
CDC::FrameRgn Fırça kullanarak belirli bir bölgenin çevresine kenarlık çizer.
CDC::FromHandle Cihaz bağlamı için tanıtıcı CDC verildiğinde nesneye bir işaretçi döndürür. Bir CDC nesne tanıtıcıya bağlı değilse, geçici CDC bir nesne oluşturulur ve eklenir.
CDC::GetArcDirection Cihaz bağlamı için geçerli yay yönünü döndürür.
CDC::GetAspectRatioFilter Geçerli en boy oranı filtresinin ayarını alır.
CDC::GetBkColor Geçerli arka plan rengini alır.
CDC::GetBkMode Arka plan modunu alır.
CDC::GetBoundsRect Belirtilen cihaz bağlamı için geçerli birikmiş sınırlayıcı dikdörtgeni döndürür.
CDC::GetBrushOrg Geçerli fırçanın çıkış noktasını alır.
CDC::GetCharABCWidths Geçerli yazı tipinden belirli bir aralıktaki ardışık karakterlerin genişliklerini mantıksal birimler halinde alır.
CDC::GetCharABCWidthsI Geçerli TrueType yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal birimler halinde alır.
CDC::GetCharacterPlacement Bir karakter dizesinde çeşitli bilgi türlerini alır.
CDC::GetCharWidth Belirli bir aralıktaki ardışık karakterlerin kesirli genişliklerini geçerli yazı tipinden alır.
CDC::GetCharWidthI Geçerli yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal koordinatlarda alır.
CDC::GetClipBox Geçerli kırpma sınırının etrafındaki en sıkı sınırlayıcı dikdörtgenin boyutlarını alır.
CDC::GetColorAdjustment Cihaz bağlamı için renk ayarlama değerlerini alır.
CDC::GetCurrentBitmap Seçili CBitmap durumdaki nesneye bir işaretçi döndürür.
CDC::GetCurrentBrush Seçili CBrush durumdaki nesneye bir işaretçi döndürür.
CDC::GetCurrentFont Seçili CFont durumdaki nesneye bir işaretçi döndürür.
CDC::GetCurrentPalette Seçili CPalette durumdaki nesneye bir işaretçi döndürür.
CDC::GetCurrentPen Seçili CPen durumdaki nesneye bir işaretçi döndürür.
CDC::GetCurrentPosition Kalemin geçerli konumunu alır (mantıksal koordinatlarda).
CDC::GetDCBrushColor Geçerli fırça rengini alır.
CDC::GetDCPenColor Geçerli kalem rengini alır.
CDC::GetDeviceCaps Belirli bir görüntüleme cihazının özellikleri hakkında belirli türde cihaza özgü bilgileri alır.
CDC::GetFontData Ölçeklenebilir bir yazı tipi dosyasından yazı tipi ölçüm bilgilerini alır. Alınacak bilgiler, yazı tipi dosyasına uzaklık ve döndürülecek bilgilerin uzunluğu belirtilerek tanımlanır.
CDC::GetFontLanguageInfo Belirtilen görüntüleme bağlamı için seçili durumdaki yazı tipi hakkında bilgi döndürür.
CDC::GetGlyphOutline Geçerli yazı tipindeki bir ana hat karakteri için ana hat eğrisini veya bit eşlemini alır.
CDC::GetGraphicsMode Belirtilen cihaz bağlamı için geçerli grafik modunu alır.
CDC::GetHalftoneBrush Yarım tonlu fırça alır.
CDC::GetKerningPairs Belirtilen cihaz bağlamında seçili olan yazı tipi için karakter aralığı çiftlerini alır.
CDC::GetLayout Cihaz bağlamının (DC) düzenini alır. Düzen soldan sağa (varsayılan) veya sağdan sola (yansıtılmış) olabilir.
CDC::GetMapMode Geçerli eşleme modunu alır.
CDC::GetMiterLimit Cihaz bağlamı için sicim sınırını döndürür.
CDC::GetNearestColor Belirtilen cihazın gösterebileceği belirtilen mantıksal renge en yakın mantıksal rengi alır.
CDC::GetOutlineTextMetrics TrueType yazı tipleri için yazı tipi ölçüm bilgilerini alır.
CDC::GetOutputCharWidth Çıkış cihazı bağlamını kullanarak geçerli yazı tipinden ardışık bir karakter grubundaki tek tek karakterlerin genişliklerini alır.
CDC::GetOutputTabbedTextExtent Çıkış cihazı bağlamında bir karakter dizesinin genişliğini ve yüksekliğini hesaplar.
CDC::GetOutputTextExtent Boyutları belirlemek için geçerli yazı tipini kullanarak çıkış cihazı bağlamındaki bir metin satırının genişliğini ve yüksekliğini hesaplar.
CDC::GetOutputTextMetrics Geçerli yazı tipinin ölçümlerini çıkış cihazı bağlamından alır.
CDC::GetPath Cihaz bağlamında seçilen yolda bulunan çizgilerin uç noktalarını ve eğrilerin denetim noktalarını tanımlayan koordinatları alır.
CDC::GetPixel Belirtilen noktada pikselin RGB renk değerini alır.
CDC::GetPolyFillMode Geçerli çokgen doldurma modunu alır.
CDC::GetROP2 Geçerli çizim modunu alır.
CDC::GetSafeHdc Çıkış cihazı bağlamını döndürür CDC::m_hDC.
CDC::GetStretchBltMode Geçerli bit eşlem esnetme modunu alır.
CDC::GetTabbedTextExtent Öznitelik cihaz bağlamında bir karakter dizesinin genişliğini ve yüksekliğini hesaplar.
CDC::GetTextAlign Metin hizalama bayraklarını alır.
CDC::GetTextCharacterExtra Ara karakter aralığı miktarı için geçerli ayarı alır.
CDC::GetTextColor Geçerli metin rengini alır.
CDC::GetTextExtent Öznitelik cihaz bağlamındaki bir metin satırının genişliğini ve yüksekliğini, boyutları belirlemek için geçerli yazı tipini kullanarak hesaplar.
CDC::GetTextExtentExPointI Belirtilen bir dizede belirtilen bir alana sığacak karakter sayısını alır ve bir diziyi bu karakterlerin her biri için metin kapsamıyla doldurur.
CDC::GetTextExtentPointI Belirtilen karakter dizin dizisinin genişliğini ve yüksekliğini alır.
CDC::GetTextFace Geçerli yazı tipinin yazı tipi adını null ile sonlandırılan dize olarak arabelleğe kopyalar.
CDC::GetTextMetrics Öznitelik cihaz bağlamından geçerli yazı tipinin ölçümlerini alır.
CDC::GetViewportExt Görünüm penceresi x ve y uzantılarını alır.
CDC::GetViewportOrg Görünüm penceresi kaynağının x ve y koordinatlarını alır.
CDC::GetWindow Görüntü cihazı bağlamıyla ilişkili pencereyi döndürür.
CDC::GetWindowExt İlişkili pencerenin x ve y uzantılarını alır.
CDC::GetWindowOrg İlişkili pencerenin kaynağının x ve y koordinatlarını alır.
CDC::GetWorldTransform Geçerli dünya alanını sayfa alanı dönüşümüne alır.
CDC::GradientFill Dikdörtgen ve üçgen yapıları bir renkle doldurur.
CDC::GrayString Verilen konuma soluk (gri) metin çizer.
CDC::HIMETRICtoDP HIMETRIC birimlerini cihaz birimlerine dönüştürür.
CDC::HIMETRICtoLP HIMETRIC birimlerini mantıksal birimlere dönüştürür.
CDC::IntersectClipRect Geçerli bölge ile dikdörtgenin kesişimini oluşturarak yeni bir kırpma bölgesi oluşturur.
CDC::InvertRect Dikdörtgenin içeriğini ters çevirir.
CDC::InvertRgn Bir bölgedeki renkleri tersine çevirir.
CDC::IsPrinting Cihaz bağlamın yazdırma için kullanılıp kullanılmadığını belirler.
CDC::LineTo Geçerli konumdan bir noktaya kadar bir çizgi çizer, ancak bir noktaya kadar çizer.
CDC::LPtoDP Mantıksal birimleri cihaz birimlerine dönüştürür.
CDC::LPtoHIMETRIC Mantıksal birimleri HIMETRIC birimlerine dönüştürür.
CDC::MaskBlt Verilen maske ve tarama işlemini kullanarak kaynak ve hedef bit eşlemler için renk verilerini birleştirir.
CDC::ModifyWorldTransform Belirtilen modu kullanarak cihaz bağlamı için dünya dönüşümlerini değiştirir.
CDC::MoveTo Geçerli konumu taşır.
CDC::OffsetClipRgn Verilen cihazın kırpma bölgesini taşır.
CDC::OffsetViewportOrg Görünüm penceresi kaynağını, geçerli görünüm penceresi kaynağının koordinatlarına göre değiştirir.
CDC::OffsetWindowOrg Geçerli pencere kaynağının koordinatlarına göre pencere kaynağını değiştirir.
CDC::PaintRgn Bir bölgeyi seçili fırçayla doldurur.
CDC::PatBlt Bit deseni oluşturur.
CDC::Pie Pasta şeklinde bir kama çizer.
CDC::PlayMetaFile Belirtilen meta dosyasının içeriğini verilen cihazda çalar. gelişmiş sürümü PlayMetaFile , verilen gelişmiş biçimli meta dosyasında depolanan resmi görüntüler. Meta dosyası istediğiniz sayıda oynatılabilir.
CDC::PlgBlt Kaynak cihaz bağlamında belirtilen dikdörtgenden verilen cihaz bağlamındaki belirtilen paralelograma renk verisi bitlerinin bit blok aktarımını gerçekleştirir.
CDC::PolyBezier Bir veya daha fazla Bzier eğrisi çizer. Geçerli konum kullanılmaz veya güncelleştirilmez.
CDC::PolyBezierTo Bir veya daha fazla Bzier eğrisi çizer ve geçerli konumu son Bzier eğrisinin bitiş noktasına taşır.
CDC::PolyDraw Bir dizi çizgi kesimi ve Bzier eğrisi çizer. Bu işlev geçerli konumu güncelleştirir.
CDC::Polygon Çizgilere bağlı iki veya daha fazla noktadan (köşe) oluşan bir çokgen çizer.
CDC::Polyline Belirtilen noktaları bağlayan bir dizi çizgi kesimi çizer.
CDC::PolylineTo Bir veya daha fazla düz çizgi çizer ve geçerli konumu son satırın bitiş noktasına taşır.
CDC::PolyPolygon Geçerli çokgen doldurma modu kullanılarak doldurulan iki veya daha fazla çokgen oluşturur. Çokgenler kopuk olabilir veya çakışabilir.
CDC::PolyPolyline Birden çok bağlı çizgi kesimi serisi çizer. Geçerli konum bu işlev tarafından kullanılmaz veya güncelleştirilmez.
CDC::PtVisible Verilen noktanın kırpma bölgesi içinde olup olmadığını belirtir.
CDC::RealizePalette Geçerli mantıksal paletteki palet girdilerini sistem paletine eşler.
CDC::Rectangle Geçerli kalemi kullanarak bir dikdörtgen çizer ve geçerli fırçayı kullanarak doldurur.
CDC::RectVisible Verilen dikdörtgenin herhangi bir bölümünün kırpma bölgesinde olup olmadığını belirler.
CDC::ReleaseAttribDC Yayınlar m_hAttribDC, öznitelik cihaz bağlamı.
CDC::ReleaseOutputDC Çıkış cihazı bağlamı olan yayınlar m_hDC.
CDC::ResetDC Cihaz bağlamını m_hAttribDC güncelleştirir.
CDC::RestoreDC Cihaz bağlamını ile SaveDCkaydedilmiş önceki bir duruma geri yükler.
CDC::RoundRect Geçerli kalemi kullanarak yuvarlatılmış köşeleri olan ve geçerli fırça kullanılarak doldurulmuş bir dikdörtgen çizer.
CDC::SaveDC Cihaz bağlamının geçerli durumunu kaydeder.
CDC::ScaleViewportExt Geçerli değerlere göre görünüm penceresi kapsamını değiştirir.
CDC::ScaleWindowExt Geçerli değerlere göre pencere kapsamlarını değiştirir.
CDC::ScrollDC Bitlerden oluşan bir dikdörtgeni yatay ve dikey olarak kaydırıyor.
CDC::SelectClipPath Cihaz bağlamı için kırpma bölgesi olarak geçerli yolu seçer ve belirtilen modu kullanarak yeni bölgeyi mevcut kırpma bölgeleriyle birleştirir.
CDC::SelectClipRgn Belirtilen modu kullanarak verilen bölgeyi geçerli kırpma bölgesiyle birleştirir.
CDC::SelectObject Kalem gibi bir GDI çizim nesnesi seçer.
CDC::SelectPalette Mantıksal paleti seçer.
CDC::SelectStockObject Windows tarafından sağlanan önceden tanımlanmış stok kalemlerden, fırçalardan veya yazı tiplerinden birini seçer.
CDC::SetAbortProc Yazdırma işinin durdurulması gerekiyorsa Windows'un çağıracağı programcı tarafından sağlanan bir geri çağırma işlevini ayarlar.
CDC::SetArcDirection Yay ve dikdörtgen işlevleri için kullanılacak çizim yönünü ayarlar.
CDC::SetAttribDC özniteliği cihaz bağlamını ayarlar m_hAttribDC.
CDC::SetBkColor Geçerli arka plan rengini ayarlar.
CDC::SetBkMode Arka plan modunu ayarlar.
CDC::SetBoundsRect Belirtilen cihaz bağlamı için sınırlayıcı dikdörtgen bilgilerinin birikmesi denetler.
CDC::SetBrushOrg Cihaz bağlamında seçilen sonraki fırçanın çıkış noktasını belirtir.
CDC::SetColorAdjustment Belirtilen değerleri kullanarak cihaz bağlamı için renk ayarlama değerlerini ayarlar.
CDC::SetDCBrushColor Geçerli fırça rengini ayarlar.
CDC::SetDCPenColor Geçerli kalem rengini ayarlar.
CDC::SetGraphicsMode Belirtilen cihaz bağlamı için geçerli grafik modunu ayarlar.
CDC::SetLayout Cihaz bağlamının (DC) düzenini değiştirir.
CDC::SetMapMode Geçerli eşleme modunu ayarlar.
CDC::SetMapperFlags Yazı tipi eşleyicisinin mantıksal yazı tiplerini fiziksel yazı tiplerine eşlerken kullandığı algoritmayı değiştirir.
CDC::SetMiterLimit Cihaz bağlamı için sicim birleşimlerinin uzunluğu sınırını ayarlar.
CDC::SetOutputDC çıkış cihazı bağlamını ayarlar m_hDC.
CDC::SetPixel Belirtilen noktadaki pikseli, belirtilen rengin en yakın yaklaşık değerine ayarlar.
CDC::SetPixelV Belirtilen koordinatlarda pikseli, belirtilen rengin en yakın yaklaşık değerine ayarlar. SetPixelV daha hızlıdır SetPixel çünkü boyanan noktanın renk değerini döndürmesi gerekmez.
CDC::SetPolyFillMode Çokgen doldurma modunu ayarlar.
CDC::SetROP2 Geçerli çizim modunu ayarlar.
CDC::SetStretchBltMode Bit eşlem esnetme modunu ayarlar.
CDC::SetTextAlign Metin hizalama bayraklarını ayarlar.
CDC::SetTextCharacterExtra Karakter aralığı miktarını ayarlar.
CDC::SetTextColor Metin rengini ayarlar.
CDC::SetTextJustification Dizedeki kesme karakterlerine boşluk ekler.
CDC::SetViewportExt Görünüm penceresi x ve y uzantılarını ayarlar.
CDC::SetViewportOrg Görünüm penceresi kaynağını ayarlar.
CDC::SetWindowExt İlişkili pencerenin x ve y uzantılarını ayarlar.
CDC::SetWindowOrg Cihaz bağlamının pencere kaynağını ayarlar.
CDC::SetWorldTransform Geçerli dünya alanını sayfa alanı dönüşümüne ayarlar.
CDC::StartDoc Cihaz sürücüsüne yeni bir yazdırma işinin başlatıldığını bildirir.
CDC::StartPage Cihaz sürücüsüne yeni bir sayfanın başlatıldığını bildirir.
CDC::StretchBlt Bir bit eşlemi kaynak dikdörtgenden ve cihazdan hedef dikdörtgene taşır ve hedef dikdörtgenin boyutlarına sığması için gerekirse bit eşlemi uzatır veya sıkıştırır.
CDC::StrokeAndFillPath Bir yoldaki açık şekilleri kapatır, geçerli kalemi kullanarak yolun ana hattını çizer ve geçerli fırçayı kullanarak iç kısmını doldurur.
CDC::StrokePath Geçerli kalemi kullanarak belirtilen yolu işler.
CDC::TabbedTextOut Sekmeleri sekme durağı konumları dizisinde belirtilen değerlere genişleterek belirtilen konuma bir karakter dizesi yazar.
CDC::TextOut Seçili durumdaki yazı tipini kullanarak belirtilen konuma bir karakter dizesi yazar.
CDC::TransparentBlt Belirtilen kaynak cihaz bağlamındaki renk verilerinin bit bloğunu hedef cihaz bağlamı içine aktarır ve aktarımda belirtilen rengi saydam hale getirerek.
CDC::UpdateColors İstemci alanındaki geçerli renkleri piksel piksel temelinde sistem paleti ile eşleştirerek cihaz bağlamının istemci alanını güncelleştirir.
CDC::WidenPath Geçerli yolu, cihaz bağlamında seçili durumdaki kalem kullanılarak yol konturlanmışsa boyanacak alan olarak yeniden tanımlar.

Ortak İşleçler

Veri Akışı Adı Açıklama
CDC::operator HDC Cihaz bağlamının tutamacını alır.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CDC::m_hAttribDC Bu CDC nesne tarafından kullanılan öznitelik-cihaz bağlamı.
CDC::m_hDC Bu CDC nesne tarafından kullanılan output-device bağlamı.

Açıklamalar

CDC nesnesi, ekran veya yazıcı gibi bir cihaz bağlamı ile çalışmak için üye işlevleri ve pencerenin istemci alanıyla ilişkilendirilmiş bir görüntü bağlamı ile çalışmak için üyeler sağlar.

Bir nesnenin üye işlevleri CDC aracılığıyla tüm çizimleri yapın. sınıfı, cihaz bağlamı işlemleri için üye işlevleri, çizim araçlarıyla çalışma, tür açısından güvenli grafik cihaz arabirimi (GDI) nesne seçimi ve renkler ve paletlerle çalışma sağlar. Ayrıca çizim özniteliklerini almak ve ayarlamak, eşlemek, görünüm penceresiyle çalışmak, pencere kapsamıyla çalışmak, koordinatları dönüştürmek, bölgelerle çalışmak, kırpmak, çizgiler çizmek ve basit şekiller, üç nokta ve çokgenler çizmek için üye işlevleri sağlar. Üye işlevleri ayrıca metin çizmek, yazı tipleriyle çalışmak, yazıcı çıkışlarını kullanmak, kaydırmak ve meta dosyaları oynatmak için de sağlanır.

Bir CDC nesneyi kullanmak için bu nesneyi oluşturup cihaz bağlamlarını kullanan paralel Windows işlevlerine üye işlevlerini çağırabilirsiniz.

Not

Windows 95/98'in altında tüm ekran koordinatları 16 bit ile sınırlıdır. Bu nedenle, int üye işlevine geçirilen bir CDC değer -32768 ile 32767 aralığında yer almalıdır.

Microsoft Foundation Sınıf Kitaplığı, belirli kullanımlar için öğesinden CDC türetilen çeşitli sınıflar sağlar. CPaintDCve EndPaintçağrılarını BeginPaint kapsüller. CClientDC pencerenin istemci alanıyla ilişkilendirilmiş bir görüntüleme bağlamını yönetir. CWindowDC çerçevesi ve denetimleri de dahil olmak üzere tüm pencereyle ilişkilendirilmiş bir görüntüleme bağlamını yönetir. CMetaFileDC bir cihaz bağlamı bir meta dosyası ile ilişkilendirir.

CDC , GetLayout SetLayoutbir penceredeki düzenini devralmayan bir cihaz bağlamının düzenini ters çevirmeye yönelik olarak ve olmak üzere iki üye işlevi sağlar. Bu tür sağdan sola yönlendirme, karakter düzeninin Avrupa standardı olmadığı Arapça veya İbranice gibi kültürler için yazılmış uygulamalar için gereklidir.

CDC iki cihaz bağlamı m_hDC içerir ve m_hAttribDCbir CDC nesne oluşturulurken aynı cihaza başvurur. CDC tüm çıkış GDI çağrılarını ve m_hDC çoğu öznitelik GDI çağrılarını öğesine m_hAttribDCyönlendirir. (Öznitelik çağrısı örneği, bir çıkış çağrısıyken SetTextColor şeklindedirGetTextColor.)

Örneğin, çerçeve, fiziksel bir cihazdan öznitelikleri okurken meta dosyasına çıkış gönderecek bir CMetaFileDC nesne uygulamak için bu iki cihaz bağlamını kullanır. Baskı önizleme, çerçevede benzer şekilde uygulanır. Ayrıca iki cihaz bağlamını uygulamaya özgü kodunuzda da benzer şekilde kullanabilirsiniz.

Hem hem m_hAttribDC de cihaz bağlamlarından metin ölçümü bilgilerine m_hDC ihtiyaç duyabileceğiniz zamanlar olabilir. Aşağıdaki işlev çiftleri bu özelliği sağlar:

m_hAttribDC kullanır m_hDC kullanır
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth

hakkında CDCdaha fazla bilgi için bkz . Cihaz Bağlamları.

Devralma Hiyerarşisi

CObject

CDC

Gereksinimler

Üstbilgi: afxwin.h

CDC::AbortDoc

Geçerli yazdırma işini sonlandırır ve üye işlevine yapılan son çağrıdan StartDoc sonra uygulamanın cihaza yazdığı her şeyi siler.

int AbortDoc();

Dönüş Değeri

Başarılı olursa 0'dan büyük veya 0'a eşit bir değer veya hata oluştuğunda negatif bir değer. Aşağıdaki listede yaygın hata değerleri ve anlamları gösterilmektedir:

  • SP_ERROR Genel hata.

  • SP_OUTOFDISK Şu anda biriktirme için yeterli disk alanı yok ve artık kullanılabilir alan olmayacak.

  • SP_OUTOFMEMORY Biriktirme için yeterli bellek yok.

  • SP_USERABORT Kullanıcı, Yazdırma Yöneticisi aracılığıyla işi sonlandırmıştı.

Açıklamalar

Bu üye işlevi yazıcı çıkışının ABORTDOC yerini alır.

AbortDoc aşağıdakileri sonlandırmak için kullanılmalıdır:

  • kullanarak SetAbortProcbir durdurma işlevi belirtmeyen yazdırma işlemleri.

  • Henüz ilk NEWFRAME veya NEXTBAND kaçış çağrılarına ulaşmamış yazdırma işlemleri.

Bir uygulama yazdırma hatasıyla veya iptal edilmiş yazdırma işlemiyle karşılaşırsa, sınıfının CDCveya AbortDoc üye işlevlerini kullanarak EndDoc işlemi sonlandırmayı denememelidir. GDI, hata değerini döndürmeden önce işlemi otomatik olarak sonlandırır.

Uygulama, kullanıcının yazdırma işlemini iptal etmesi için bir iletişim kutusu görüntülerse, iletişim kutusunu yok etmeden önce çağrısı AbortDoc yapmalıdır.

Yazdırma işini başlatmak için Print Manager kullanıldıysa, çağrılması AbortDoc tüm biriktirici işini siler; yazıcı hiçbir şey almaz. Yazdırma işini başlatmak için Yazdırma Yöneticisi kullanılmadıysa, veriler çağrılmadan önce AbortDoc yazıcıya gönderilmiş olabilir. Bu durumda, yazıcı sürücüsü yazıcıyı sıfırlar (mümkün olduğunda) ve yazdırma işini kapatırdı.

Örnek

örneğine CDC::StartDocbakın.

CDC::AbortPath

Cihaz bağlamındaki tüm yolları kapatır ve atar.

BOOL AbortPath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Cihaz bağlamında açık bir yol ayracı varsa, yol ayracı kapatılır ve yol atılır. Cihaz bağlamında kapalı bir yol varsa, yol atılır.

CDC::AddMetaFileComment

Açıklamayı bir arabellekten belirtilen gelişmiş biçimli meta dosyaya kopyalar.

BOOL AddMetaFileComment(
    UINT nDataSize,
    const BYTE* pCommentData);

Parametreler

nDataSize
Açıklama arabelleğinin uzunluğunu bayt cinsinden belirtir.

pCommentData
Açıklamayı içeren arabelleğe işaret eden.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Açıklama, resmin kaynağı ve oluşturulduğu tarih gibi özel bilgileri içerebilir. Açıklama bir uygulama imzası ve ardından veriler ile başlamalıdır. Açıklamalar konuma özgü veriler içermemelidir. Konuma özgü veriler bir kaydın konumunu belirtir ve bir meta dosyası başka bir meta dosyaya katıştırılabildiğinden bu veri dahil edilmemelidir. Bu işlev yalnızca gelişmiş meta dosyalarla kullanılabilir.

CDC::AlphaBlend

Saydam veya yarı saydam piksellere sahip bit eşlemleri görüntülemek için bu üye işlevini çağır.

BOOL AlphaBlend(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    BLENDFUNCTION blend);

Parametreler

xDest
Hedef dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.

yDest
Hedef dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.

nDestWidth
Hedef dikdörtgenin genişliğini mantıksal birimler halinde belirtir.

nDestHeight
Hedef dikdörtgenin yüksekliğini mantıksal birimlerde belirtir.

pSrcDC
Kaynak cihaz bağlamı için bir işaretçi.

xSrc
Kaynak dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.

ySrc
Kaynak dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.

nSrcWidth
Kaynak dikdörtgenin genişliğini mantıksal birimler halinde belirtir.

nSrcHeight
Kaynak dikdörtgenin yüksekliğini mantıksal birimler halinde belirtir.

blend
Bir BLENDFUNCTION yapı belirtir.

Dönüş Değeri

TRUE başarılı olursa; aksi takdirde FALSE.

Açıklamalar

Daha fazla bilgi için Bkz AlphaBlend . Windows SDK'sı.

CDC::AngleArc

Çizgi kesimi ve yay çizer.

BOOL AngleArc(
    int x,
    int y,
    int nRadius,
    float fStartAngle,
    float fSweepAngle);

Parametreler

x
Dairenin merkezinin mantıksal x koordinatını belirtir.

y
Dairenin merkezinin mantıksal y koordinatını belirtir.

nRadius
Dairenin yarıçapını mantıksal birimler halinde belirtir. Bu değer pozitif olmalıdır.

fStartAngle
Başlangıç açısını x eksenine göre derece cinsinden belirtir.

fSweepAngle
Süpürme açısını başlangıç açısına göre derece cinsinden belirtir.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Çizgi segmenti geçerli konumdan yay başlangıcına doğru çizilir. Yay, verilen yarıçap ve merkezi olan bir dairenin çevresi boyunca çizilir. Yay uzunluğu, verilen başlangıç ve süpürme açılarıyla tanımlanır.

AngleArc geçerli konumu yayının bitiş noktasına taşır. Bu işlev tarafından çizilen yay, geçerli dönüştürme ve eşleme moduna bağlı olarak eliptik gibi görünebilir. Bu işlev, yayı çizmeden önce çizgi kesimini geçerli konumdan yayının başına doğru çizer. Yay, belirtilen merkez noktasının çevresinde belirtilen yarıçapa sahip sanal bir daire oluşturarak çizilir. Yay başlangıç noktası, dairenin x ekseninden saat yönünün tersine, başlangıç açısındaki derece sayısına göre ölçülerek belirlenir. Bitiş noktası benzer şekilde, başlangıç noktasından saat yönünün tersine süpürme açısındaki derece sayısına göre ölçülerek bulunur.

Süpürme açısı 360 dereceden büyükse yay birden çok kez süpürülür. Bu işlev geçerli kalemi kullanarak çizgileri çizer. Şekil doldurulmuyor.

CDC::Arc

Eliptik bir yay çizer.

BOOL Arc(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Arc(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parametreler

x1
Sınırlayıcı dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).

y1
Sınırlayıcı dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).

x2
Sınırlayıcı dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).

y2
Sınırlayıcı dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).

x3
Arkın başlangıç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

y3
Arkın başlangıç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

x4
Arc'ın uç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

y4
Arc'ın uç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir LPRECT veya CRect nesnesi geçirebilirsiniz.

ptStart
Arkın başlangıç noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

ptEnd
Arkın bitiş noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

işlevi kullanılarak çizilen yay, belirtilen sınırlayıcı dikdörtgen tarafından tanımlanan üç noktanın bir kesimidir.

Yayının asıl başlangıç noktası, sınırlayıcı dikdörtgenin ortasından belirtilen başlangıç noktası üzerinden çekilen bir ışının üç noktayla kesiştiği noktadır. Yayının gerçek bitiş noktası, sınırlayıcı dikdörtgenin ortasından belirtilen bitiş noktası üzerinden çekilen bir ışının üç noktayla kesiştiği noktadır. Yay saat yönünün tersine çizilir. Yay kapalı bir şekil olmadığından, doldurulmaz. Dikdörtgenin hem genişliği hem de yüksekliği 2 birimden büyük ve 32.767 birimden az olmalıdır.

Örnek

void CDCView::DrawArc(CDC *pDC)
{
   // Fill the client area with a thin circle. The circle's
   // interior is not filled. The circle's perimeter is
   // blue from 6 o'clock to 3 o'clock and red from 3
   // o'clock to 6 o'clock.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens.
   CPen penBlue;
   CPen penRed;
   CPen *pOldPen;

   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen.

   pOldPen = pDC->SelectObject(&penBlue);

   pDC->Arc(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw from 6 o'clock to 3 o'clock, counterclockwise,
   // in a red pen.
   pDC->SelectObject(&penRed);

   // Keep the same parameters, but reverse start
   // and end points.
   pDC->Arc(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::ArcTo

Eliptik bir yay çizer.

BOOL ArcTo(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL ArcTo(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parametreler

x1
Sınırlayıcı dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).

y1
Sınırlayıcı dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).

x2
Sınırlayıcı dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).

y2
Sınırlayıcı dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).

x3
Arkın başlangıç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

y3
Arkın başlangıç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

x4
Arc'ın uç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

y4
Arc'ın uç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir veri yapısına veya nesneye RECT işaretçi CRect geçirebilirsiniz.

ptStart
Arkın başlangıç noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT veri yapısı veya CPoint nesnesi geçirebilirsiniz.

ptEnd
Arkın bitiş noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT veri yapısı veya CPoint nesnesi geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu işlev, geçerli konumun güncelleştirilmiş olması dışında öğesine benzer CDC::Arc. Noktalar ( x1, y1) ve ( x2, y2) sınırlayıcı dikdörtgeni belirtir. Verilen sınırlayıcı dikdörtgen tarafından oluşturulan üç nokta, yay eğrisini tanımlar. Yay, sınırlayıcı dikdörtgenin ortasından radyal çizgiyi kesiştiği noktadan saat yönünün tersine (varsayılan yay yönü) ( *x3*, y3) genişletir. Yay, sınırlayıcı dikdörtgenin ortasından radyal çizgiyle ( x4, y4) kesiştiği yerde sona erer. Başlangıç noktası ve bitiş noktası aynıysa, tam bir üç nokta çizilir.

Geçerli konumdan yayının başlangıç noktasına bir çizgi çizilir. Hata oluşmazsa, geçerli konum yayının bitiş noktasına ayarlanır. Yay geçerli kalem kullanılarak çizilir; doldurulmuyor.

CDC::Attach

Nesnesine bir hDC eklemek için CDC bu üye işlevini kullanın.

BOOL Attach(HDC hDC);

Parametreler

hDC
Windows cihaz bağlamı.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

hDC, hem çıkış cihazı bağlamında hem m_hDCde m_hAttribDCözniteliği cihaz bağlamında depolanır.

CDC::BeginPath

Cihaz bağlamında bir yol ayracı açar.

BOOL BeginPath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bir yol ayracı açıldıktan sonra, bir uygulama yolda bulunan noktaları tanımlamak için GDI çizim işlevlerini çağırmaya başlayabilir. Uygulama, üye işlevini çağırarak açık yol ayraçlarını EndPath kapatabilir. Bir uygulama çağırdığında BeginPath, önceki yollar atılır.

Bir yoldaki noktaları tanımlayan çizim işlevlerinin listesi için Bkz BeginPath . Windows SDK'sı.

Örnek

// This implementation uses GDI paths to draw the outline of
// some text in a TrueType font. The path is used to record the way
// the TrueType font would be drawn. Then, the function uses the data
// returned from CDC::GetPath() to draw the font--without filling it.
void CDCView::DrawPath(CDC *pDC)
{
   // Describe a 24-point truetype font of normal weight
   LOGFONT lf;
   memset(&lf, 0, sizeof(lf));
   lf.lfHeight = -MulDiv(24, pDC->GetDeviceCaps(LOGPIXELSY), 72);
   lf.lfWeight = FW_NORMAL;
   lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;

   // create and select it
   CFont newFont;
   if (!newFont.CreateFontIndirect(&lf))
      return;
   CFont *pOldFont = pDC->SelectObject(&newFont);

   // use a path to record how the text was drawn
   pDC->BeginPath();
   pDC->TextOut(10, 10, _T("Outline this!"));
   pDC->EndPath();

   // Find out how many points are in the path. Note that
   // for long strings or complex fonts, this number might be
   // gigantic!
   int nNumPts = pDC->GetPath(NULL, NULL, 0);
   if (nNumPts == 0)
      return;

   // Allocate memory to hold points and stroke types from
   // the path.
   LPPOINT lpPoints = NULL;
   LPBYTE lpTypes = NULL;
   try
   {
      lpPoints = new POINT[nNumPts];
      lpTypes = new BYTE[nNumPts];
   }
   catch (CException *pe)
   {
      delete[] lpPoints;
      lpPoints = NULL;
      delete[] lpTypes;
      lpTypes = NULL;
      pe->Delete();
   }
   if (lpPoints == NULL || lpTypes == NULL)
      return;

   // Now that we have the memory, really get the path data.
   nNumPts = pDC->GetPath(lpPoints, lpTypes, nNumPts);

   // If it worked, draw the lines. Windows 98 doesn't support
   // the PolyDraw API, so we use our own member function to do
   // similar work. If you're targeting only later versions of
   // Windows, you can use the PolyDraw() API and avoid the
   // COutlineView::PolyDraw() member function.

   if (nNumPts != -1)
      pDC->PolyDraw(lpPoints, lpTypes, nNumPts);

   // Release the memory we used
   delete[] lpPoints;
   delete[] lpTypes;

   // Put back the old font
   pDC->SelectObject(pOldFont);

   return;
}

CDC::BitBlt

Kaynak cihaz bağlamından bu geçerli cihaz bağlamı için bit eşlem kopyalar.

BOOL BitBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    DWORD dwRop);

Parametreler

x
Hedef dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y
Hedef dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.

nWidth
Hedef dikdörtgenin ve kaynak bit eşleminin genişliğini (mantıksal birimlerde) belirtir.

nHeight
Hedef dikdörtgenin ve kaynak bit eşleminin yüksekliğini (mantıksal birimlerde) belirtir.

pSrcDC
Bit eşlemin kopyalanacağı cihaz bağlamını tanımlayan bir CDC nesnenin işaretçisi. Kaynak içermeyen bir raster işlemi belirtiyorsa dwRop olmalıdırNULL.

xSrc
Kaynak bit eşleminin sol üst köşesinin mantıksal x koordinatını belirtir.

ySrc
Kaynak bit eşleminin sol üst köşesinin mantıksal y koordinatını belirtir.

dwRop
Gerçekleştirilecek ızgara işlemini belirtir. Raster-işlem kodları, GDI'nin geçerli fırça, olası bir kaynak bit eşlem ve hedef bit eşlem içeren çıkış işlemlerinde renkleri nasıl birleştirdiğini tanımlar. için raster-operation kodlarının ve açıklamalarının listesi için dwRop Windows SDK'sına bakın BitBlt

Raster-operation kodlarının tam listesi için bkz . Windows SDK'sında Raster İşlem Kodları Hakkında.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Uygulama, işlemlerin bayt hizalı dikdörtgenlerde gerçekleşmesini sağlamak BitBlt için pencereleri veya istemci alanlarını bayt sınırlarına hizalayabilir. (Pencere sınıflarını kaydederken veya CS_BYTEALIGNCLIENT bayraklarını ayarlayınCS_BYTEALIGNWINDOW.)

BitBlt bayt hizalı dikdörtgenlerdeki işlemler, bayt hizalanmamış dikdörtgenlerdeki işlemlerden çok daha BitBlt hızlıdır. Kendi cihaz bağlamınız için bayt hizalama gibi sınıf stilleri belirtmek istiyorsanız, bunu sizin için yapmak için Microsoft Foundation sınıflarına güvenmek yerine bir pencere sınıfı kaydetmeniz gerekir. genel işlevini AfxRegisterWndClasskullanın.

GDI, hedef cihaz bağlamını kullanarak ve nHeightöğesini bir kez kaynak cihaz bağlamını kullanarak dönüştürürnWidth. Elde edilen kapsamlar eşleşmiyorsa GDI, kaynak bit eşlemi gerektiği şekilde sıkıştırmak veya uzatmak için Windows StretchBlt işlevini kullanır.

Hedef, kaynak ve desen bit eşlemleri aynı renk biçimine sahip değilse, BitBlt işlev kaynak ve desen bit eşlemlerini hedefle eşleşecek şekilde dönüştürür. Dönüştürmede hedef bit eşleminin ön plan ve arka plan renkleri kullanılır.

BitBlt İşlev tek renkli bit eşlemi renge dönüştürdüğünde, beyaz bitleri (1) arka plan rengine, siyah bitleri (0) ön plan rengine ayarlar. Hedef cihaz bağlamının ön plan ve arka plan renkleri kullanılır. Rengi tek renkliye dönüştürmek için arka BitBlt plan rengiyle eşleşen pikselleri beyaza, diğer tüm pikselleri de siyah olarak ayarlar. BitBlt renkten tek renkliye dönüştürmek için renk cihazı bağlamının ön plan ve arka plan renklerini kullanır.

Tüm cihaz bağlamları öğesini desteklemez BitBlt. Belirli bir cihaz bağlamını GetDeviceCaps destekleyip desteklemediğini BitBltdenetlemek için üye işlevini kullanın ve RASTERCAPS dizinini belirtin.

Örnek

örneğine CDC::CreateCompatibleDCbakın.

CDC::CDC

Bir CDC nesne oluşturur.

CDC();

CDC::Chord

Bir akor çizer (elips ve çizgi kesiminin kesişimiyle sınırlanmış kapalı bir şekil).

BOOL Chord(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Chord(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parametreler

x1
Akor sınırlayıcı dikdörtgeninin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).

y1
Akor sınırlayıcı dikdörtgeninin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).

x2
Akor sınırlayıcı dikdörtgeninin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).

y2
Akor sınırlayıcı dikdörtgeninin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).

x3
Akor başlangıç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde).

y3
Akor'un başlangıç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde).

x4
Akor uç noktasını tanımlayan noktanın x koordinatını belirtir (mantıksal birimlerde).

y4
Akor uç noktasını tanımlayan noktanın y koordinatını belirtir (mantıksal birimlerde).

lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir LPRECT veya CRect nesnesi geçirebilirsiniz.

ptStart
Akor başlangıç noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu nokta tam olarak akorda uzanmak zorunda değil. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

*ptEnd*
Akor bitiş noktasını tanımlayan noktanın x ve y koordinatlarını belirtir (mantıksal birimlerde). Bu nokta tam olarak akorda uzanmak zorunda değil. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

( x1, y1) ve ( , x2y2) parametreleri sırasıyla, akor parçası olan üç noktayı sınırlayan bir dikdörtgenin sol üst ve sağ alt köşelerini belirtir. ( x3, y3) ve ( ( x4, y4) parametreleri, üç noktayla kesişen bir satırın uç noktalarını belirtir. Akor, seçili kalem kullanılarak çizilir ve seçili fırça kullanılarak doldurulur.

İşlev tarafından Chord çizilen şekil sonuna kadar uzanır, ancak sağ ve alt koordinatları içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir.

Örnek

void CDCView::DrawChord(CDC *pDC)
{
   // Fill the client area with a circle. The circle is
   // blue and filled with blue, but has a chord cut out
   // of it from 3 o'clock to 6 o'clock. That chord is
   // red and filled with a red diagonal hatch.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.
   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Chord(rectClient,
              CPoint(rectClient.right, rectClient.CenterPoint().y),
              CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter chord from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen
   // with the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Keep the same parameters, but reverse start and
   // end points.
   pDC->Chord(rectClient,
              CPoint(rectClient.CenterPoint().x, rectClient.right),
              CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::CloseFigure

Yoldaki açık bir şekli kapatır.

BOOL CloseFigure();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

İşlev, geçerli konumdan şeklin ilk noktasına (genellikle üye işleve yapılan en son çağrı MoveTo tarafından belirtilen nokta) bir çizgi çizerek şekli kapatır ve çizgi birleştirme stilini kullanarak çizgileri bağlar. Bir şekil yerine üye işlevi CloseFigurekullanılarak LineTo kapatılırsa, birleştirme yerine köşeyi oluşturmak için uç büyük harfler kullanılır. CloseFigure yalnızca cihaz bağlamında açık bir yol ayracı varsa çağrılmalıdır.

Yoldaki bir şekil, bu işlev kullanılarak açıkça kapatılmadığı sürece açıktır. (Bir şekil, geçerli nokta ve şeklin başlangıç noktası aynı olsa bile açık olabilir.) Yeni bir şekil başlatıldıktan sonra CloseFigure yola eklenen herhangi bir çizgi veya eğri.

CDC::CreateCompatibleDC

tarafından pDCbelirtilen cihazla uyumlu bir bellek cihazı bağlamı oluşturur.

BOOL CreateCompatibleDC(CDC* pDC);

Parametreler

pDC
Cihaz bağlamı işaretçisi. ise pDC NULL, işlev sistem görüntüsüyle uyumlu bir bellek cihazı bağlamı oluşturur.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bellek cihazı bağlamı, bir ekran yüzeyini temsil eden bir bellek bloğudur. Görüntüleri uyumlu cihazın gerçek cihaz yüzeyine kopyalamadan önce bellekte hazırlamak için kullanılabilir.

Bir bellek cihazı bağlamı oluşturulduğunda GDI otomatik olarak 1'e 1 tek renkli bir bit eşlem seçer. GDI çıkış işlevleri, bellek cihazı bağlamı ile yalnızca bir bit eşlem oluşturulmuş ve bu bağlamda seçilmişse kullanılabilir.

Bu işlev yalnızca tarama işlemlerini destekleyen cihazlar için uyumlu cihaz bağlamları oluşturmak için kullanılabilir. Cihaz bağlamları CDC::BitBlt arasındaki bit bloğu aktarımlarıyla ilgili bilgi için üye işlevine bakın. Cihaz bağlamlarının tarama işlemlerini destekleyip desteklemediğini belirlemek için üye işlevindeki CDC::GetDeviceCapsraster özelliğine bakınRC_BITBLT.

Örnek

// This handler loads a bitmap from system resources,
// centers it in the view, and uses BitBlt() to paint the bitmap
// bits.
void CDCView::DrawBitmap(CDC *pDC)
{
   // load IDB_BITMAP1 from our resources
   CBitmap bmp;
   if (bmp.LoadBitmap(IDB_BITMAP1))
   {
      // Get the size of the bitmap
      BITMAP bmpInfo;
      bmp.GetBitmap(&bmpInfo);

      // Create an in-memory DC compatible with the
      // display DC we're using to paint
      CDC dcMemory;
      dcMemory.CreateCompatibleDC(pDC);

      // Select the bitmap into the in-memory DC
      CBitmap *pOldBitmap = dcMemory.SelectObject(&bmp);

      // Find a centerpoint for the bitmap in the client area
      CRect rect;
      GetClientRect(&rect);
      int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
      int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;

      // Copy the bits from the in-memory DC into the on-
      // screen DC to actually do the painting. Use the centerpoint
      // we computed for the target offset.
      pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
                  0, 0, SRCCOPY);

      dcMemory.SelectObject(pOldBitmap);
   }
   else
   {
      TRACE0("ERROR: Where's IDB_BITMAP1?\n");
   }
}

CDC::CreateDC

Belirtilen cihaz için bir cihaz bağlamı oluşturur.

BOOL CreateDC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parametreler

lpszDriverName
Cihaz sürücüsünün dosya adını (uzantısız) belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON"). Bu parametre için bir CString nesne de geçirebilirsiniz.

lpszDeviceName
Desteklenecek belirli bir cihazın adını belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON FX-80"). lpszDeviceName modülü birden fazla cihazı destekliyorsa parametresi kullanılır. Bu parametre için bir CString nesne de geçirebilirsiniz.

lpszOutput
Fiziksel çıkış ortamı (dosya veya çıkış bağlantı noktası) için dosya veya cihaz adını belirten null olarak sonlandırılan bir dizeye işaret eder. Bu parametre için bir CString nesne de geçirebilirsiniz.

lpInitData
Cihaz sürücüsü için cihaza özgü başlatma verilerini içeren bir DEVMODE yapıyı gösterir. Windows DocumentProperties işlevi, belirli bir cihaz için bu yapıyı doldurulmuş olarak alır. Parametre, lpInitData cihaz sürücüsünün Denetim Masası aracılığıyla kullanıcı tarafından belirtilen varsayılan başlatmayı (varsa) kullanması durumunda olmalıdırNULL.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Yapı PRINT.H kullanılıyorsa DEVMODE üst bilgi dosyası gereklidir.

Cihaz adları şu kurallara uyar: bir bitiş iki nokta üst üste (:) önerilir, ancak isteğe bağlıdır. Windows, iki nokta üst üste ile biten bir cihaz adının iki nokta üst üste olmadan aynı adla aynı bağlantı noktasına eşlenmesi için sonlandırıcı iki nokta üst üsteyi şeritler. Sürücü ve bağlantı noktası adları baştaki veya sondaki boşlukları içermemelidir. GDI çıkış işlevleri bilgi bağlamlarıyla kullanılamaz.

CDC::CreateIC

Belirtilen cihaz için bir bilgi bağlamı oluşturur.

BOOL CreateIC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parametreler

lpszDriverName
Cihaz sürücüsünün dosya adını (uzantısız) belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON"). Bu parametre için bir CString nesne geçirebilirsiniz.

lpszDeviceName
Desteklenecek belirli bir cihazın adını belirten null olarak sonlandırılan bir dizeye işaret eder (örneğin, "EPSON FX-80"). lpszDeviceName modülü birden fazla cihazı destekliyorsa parametresi kullanılır. Bu parametre için bir CString nesne geçirebilirsiniz.

lpszOutput
Fiziksel çıkış ortamı (dosya veya bağlantı noktası) için dosya veya cihaz adını belirten null olarak sonlandırılan bir dizeye işaret eder. Bu parametre için bir CString nesne geçirebilirsiniz.

lpInitData
Cihaz sürücüsü için cihaza özgü başlatma verilerini gösterir. Parametre, lpInitData cihaz sürücüsünün Denetim Masası aracılığıyla kullanıcı tarafından belirtilen varsayılan başlatmayı (varsa) kullanması durumunda olmalıdırNULL. Cihaza özgü başlatma için veri biçimi için bkz CreateDC .

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bilgi bağlamı, cihaz bağlamı oluşturmadan cihaz hakkında bilgi almak için hızlı bir yol sağlar.

Cihaz adları şu kurallara uyar: bir bitiş iki nokta üst üste (:) önerilir, ancak isteğe bağlıdır. Windows, iki nokta üst üste ile biten bir cihaz adının iki nokta üst üste olmadan aynı adla aynı bağlantı noktasına eşlenmesi için sonlandırıcı iki nokta üst üsteyi şeritler. Sürücü ve bağlantı noktası adları baştaki veya sondaki boşlukları içermemelidir. GDI çıkış işlevleri bilgi bağlamlarıyla kullanılamaz.

CDC::DeleteDC

Genel olarak, bu işlevi çağırmayın; yok edici bunu sizin için yapacaktır.

BOOL DeleteDC();

Dönüş Değeri

İşlev başarıyla tamamlandıysa sıfır olmayan; aksi takdirde 0.

Açıklamalar

DeleteDC Üye işlevi, geçerli CDC nesnede ile m_hDC ilişkilendirilmiş Windows cihaz bağlamlarını siler. Bu CDC nesne belirli bir cihazın son etkin cihaz bağlamıysa, cihaz tarafından kullanılan tüm depolama ve sistem kaynakları serbest bırakılır.

Bir uygulama, cihaz bağlamında nesneler seçilmişse çağrı DeleteDC yapmamalıdır. Nesneler silinmeden önce cihaz bağlamından seçilmelidir.

Bir uygulama, tanıtıcısı çağrılarak CWnd::GetDCelde edilen bir cihaz bağlamını silmemelidir. Bunun yerine, cihaz bağlamını boşaltmak için çağrısı CWnd::ReleaseDC yapmalıdır. CClientDC ve CWindowDC sınıfları bu işlevselliği sarmak için sağlanır.

DeleteDC işlevi genellikle , CreateICveya CreateCompatibleDCile CreateDColuşturulan cihaz bağlamlarını silmek için kullanılır.

Örnek

örneğine CPrintDialog::GetPrinterDCbakın.

CDC::DeleteTempMap

Boşta kalma zamanı işleyicisi tarafından CWinApp otomatik olarak çağrılır, DeleteTempMap tarafından FromHandleoluşturulan geçici CDC nesneleri siler, ancak nesnelerle CDC geçici olarak ilişkili cihaz bağlam tutamaçlarını (hDClar) yok etmez.

static void PASCAL DeleteTempMap();

CDC::Detach

Nesneden ayırmak m_hDC (çıkış cihazı bağlamı) ve hem hem de m_hDC m_hAttribDC olarak ayarlamak için NULLbu işlevi çağırınCDC.

HDC Detach();

Dönüş Değeri

Windows cihaz bağlamı.

CDC::DPtoHIMETRIC

Ole'ye boyut verirseniz HIMETRIC pikselleri HIMETRICdeğerine dönüştürürken bu işlevi kullanın.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Parametreler

lpSize
SIZE yapısını veya CSize nesnesini gösterir.

Açıklamalar

Cihaz bağlam nesnesinin MM_LOENGLISHeşleme modu , MM_HIENGLISH, MM_LOMETRICveya MM_HIMETRICise dönüştürme, fiziksel inçteki piksel sayısını temel alır. Eşleme modu diğer kısıtlanmamış modlardan biriyse (örneğin, MM_TEXT), dönüştürme işlemi mantıksal inçteki piksel sayısını temel alır.

CDC::DPtoLP

Cihaz birimlerini mantıksal birimlere dönüştürür.

void DPtoLP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void DPtoLP(LPRECT lpRect) const;
void DPtoLP(LPSIZE lpSize) const;

Parametreler

lpPoints
Bir yapı veya CPoint nesne dizisine POINT işaret eder.

nCount
Dizideki nokta sayısı.

lpRect
Bir RECT yapıyı veya CRect nesneyi gösterir. Bu parametre, bir dikdörtgenin cihaz noktalarından mantıksal noktalara dönüştürülmesi için kullanılır.

lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.

Açıklamalar

İşlev, her noktanın koordinatlarını veya bir boyutun boyutunu cihaz koordinat sisteminden GDI'nın mantıksal koordinat sistemine eşler. Dönüştürme, geçerli eşleme moduna ve cihazın penceresi ve görünüm penceresi için çıkış noktalarının ve kapsamlarının ayarlarına bağlıdır.

CDC::Draw3dRect

Üç boyutlu bir dikdörtgen çizmek için bu üye işlevini çağırın.

void Draw3dRect(
    LPCRECT lpRect,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

void Draw3dRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

Parametreler

lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir RECT yapıya veya nesneye işaretçi CRect geçirebilirsiniz.

clrTopLeft
Üç boyutlu dikdörtgenin üst ve sol kenarlarının rengini belirtir.

clrBottomRight
Üç boyutlu dikdörtgenin alt ve sağ kenarlarının rengini belirtir.

x
Üç boyutlu dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y
Üç boyutlu dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.

cx
Üç boyutlu dikdörtgenin genişliğini belirtir.

cy
Üç boyutlu dikdörtgenin yüksekliğini belirtir.

Açıklamalar

Dikdörtgen, tarafından belirtilen renkte üst ve sol kenarlar, ile belirtilen clrTopLeft renkte clrBottomRightise alt ve sağ kenarlar çizilir.

Örnek

void CDCView::Draw3dRect(CDC *pDC)
{
   // get the client area
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels on all sides
   rect.DeflateRect(20, 20);

   // draw a rectangle with red top and left sides, and
   // green right and bottom sides.
   pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));

   // This call to the four-integer override would draw
   // the same rectangle with a little less convenience:

   // pDC->Draw3dRect(rect.left, rect.top, rect.Width(), rect.Height(),
   //    RGB(255, 0, 0), RGB(0, 255, 0));
}

CDC::DrawDragRect

Sürükleme dikdörtgeni yeniden çizmek için bu üye işlevini art arda çağırın.

void DrawDragRect(
    LPCRECT lpRect,
    SIZE size,
    LPCRECT lpRectLast,
    SIZE sizeLast,
    CBrush* pBrush = NULL,
    CBrush* pBrushLast = NULL);

Parametreler

lpRect
Bir RECT yapıya veya dikdörtgenin CRect mantıksal koordinatlarını belirten bir nesneye işaret eder; bu örnekte, yeniden çizilmekte olan dikdörtgenin bitiş konumu.

size
Bir dikdörtgenin dış kenarlarının sol üst köşesinden iç kenarlık (kenarlık kalınlığı) için sol üst köşeye yer değiştirme işlemini belirtir.

lpRectLast
Bir RECT yapıya veya dikdörtgenin CRect konumunun mantıksal koordinatlarını belirten bir nesneye işaret eder; bu örnekte, yeniden çizilmekte olan dikdörtgenin özgün konumu.

sizeLast
Yeniden çizilmekte olan özgün dikdörtgenin dış kenarlık sol üst köşesinden iç kenarlık (yani kenarlık kalınlığı) sol üst köşesine yer değiştirme işlemini belirtir.

pBrush
Fırça nesnesinin işaretçisi. NULL Varsayılan yarım ton fırçasını kullanmak için olarak ayarlayın.

pBrushLast
Kullanılan son fırça nesnesinin işaretçisi. NULL Varsayılan yarım ton fırçasını kullanmak için olarak ayarlayın.

Açıklamalar

Görsel geri bildirim sağlamak için fare konumunu örneklediğiniz gibi döngüde çağırabilirsiniz. çağırdığınızda DrawDragRect, önceki dikdörtgen silinir ve yeni bir dikdörtgen çizilir. Örneğin, kullanıcı bir dikdörtgeni ekranda sürüklerken özgün DrawDragRect dikdörtgeni siler ve yeni bir dikdörtgeni yeni konumunda yeniden çizer. Varsayılan olarak, DrawDragRect titremeyi ortadan kaldırmak ve düzgün hareket eden bir dikdörtgenin görünümünü oluşturmak için yarım tonlu fırça kullanarak dikdörtgeni çizer.

öğesini ilk kez çağırdığınızda DrawDragRectlpRectLast parametresi olmalıdırNULL.

CDC::DrawEdge

Belirtilen türde ve stilde bir dikdörtgenin kenarlarını çizmek için bu üye işlevini çağırın.

BOOL DrawEdge(
    LPRECT lpRect,
    UINT nEdge,
    UINT nFlags);

Parametreler

lpRect
Dikdörtgenin mantıksal koordinatlarını içeren bir RECT yapıya yönelik işaretçi.

nEdge
Çizecek iç ve dış kenarın türünü belirtir. Bu parametre, bir iç kenarlık bayrağı ve bir dış kenarlık bayrağının birleşimi olmalıdır. Parametre türlerinin tablosu için Bkz DrawEdge . Windows SDK'sı.

nFlags
Çizilecek kenarlık türünü belirten bayraklar. Parametre değerlerinin bir tablosu için Bkz DrawEdge . Windows SDK'sı. Çapraz çizgiler için, BF_RECT bayraklar dikdörtgen parametresiyle sınırlanan vektörünün bitiş noktasını belirtir.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

CDC::DrawEscape

Grafik cihaz arabirimi (GDI) aracılığıyla doğrudan kullanılamamış bir video ekranının çizim özelliklerine erişir.

int DrawEscape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData);

Parametreler

nEscape
Gerçekleştirilecek kaçış işlevini belirtir.

nInputSize
parametresi tarafından işaret edilen lpszInputData veri bayt sayısını belirtir.

lpszInputData
Belirtilen kaçış için gereken giriş yapısını gösterir.

Dönüş Değeri

İşlevin sonucunu belirtir. Yalnızca uygulamayı denetleyen çizim kaçışı QUERYESCSUPPORT dışında başarılı olursa sıfırdan büyük; kaçış uygulanmadıysa sıfırdan büyük veya hata oluştuğunda sıfırdan küçük.

Açıklamalar

Bir uygulama tarafından çağrıldığında DrawEscapeve lpszInputData tarafından nInputSize tanımlanan veriler doğrudan belirtilen görüntü sürücüsüne geçirilir.

CDC::DrawFocusRect

Odağın dikdörtgende olduğunu belirtmek için kullanılan stilde bir dikdörtgen çizer.

void DrawFocusRect(LPCRECT lpRect);

Parametreler

lpRect
Çizilecek dikdörtgenin mantıksal koordinatlarını belirten bir RECT CRect yapıya veya nesneye işaret eder.

Açıklamalar

Bu bir Boole XOR (^) işlevi olduğundan, bu işlevin aynı dikdörtgenle ikinci kez çağrılması dikdörtgeni ekrandan kaldırır. Bu işlev tarafından çizilen dikdörtgen kaydırılamaz. Bu işlev tarafından çizilen dikdörtgen içeren bir alanı kaydırmak için, önce dikdörtgeni ekrandan kaldırmak için çağırın DrawFocusRect , sonra alanı kaydırın ve sonra dikdörtgeni yeni konuma çizmek için yeniden çağırın DrawFocusRect .

Dikkat

DrawFocusRect yalnızca modda MM_TEXT çalışır. Diğer modlarda bu işlev odak dikdörtgenini doğru çizmez, ancak hata değerleri döndürmez.

CDC::DrawFrameControl

Belirtilen tür ve stile ait bir çerçeve denetimi çizmek için bu üye işlevini çağırın.

BOOL DrawFrameControl(
    LPRECT lpRect,
    UINT nType,
    UINT nState);

Parametreler

lpRect
Dikdörtgenin mantıksal koordinatlarını içeren bir RECT yapıya yönelik işaretçi.

nType
Çizecek çerçeve denetiminin türünü belirtir. Bu parametrenin uType DrawFrameControl olası değerlerinin listesi için Windows SDK'sında parametresine bakın.

nState
Çerçeve denetiminin ilk durumunu belirtir. Windows SDK'sında parametresi DrawFrameControl için uState açıklanan değerlerden biri veya daha fazlası olabilir. Sınırlayıcı dikdörtgeni nState , düğmenin çevresindeki kenarı dışlayacak şekilde ayarlamak için değerini DFCS_ADJUSTRECT kullanın.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bazı durumlarda parametresine nState nType bağlıdır. Aşağıdaki listede dört nType değer ile nStatearasındaki ilişki gösterilmektedir:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Üç durumlu düğme

    • DFCS_BUTTONCHECK Onay kutusu

    • DFCS_BUTTONPUSH Düğme

    • DFCS_BUTTONRADIO Seçenek düğmesi

    • DFCS_BUTTONRADIOIMAGE Radyo düğmesi için görüntü (nonsquare needs image)

    • DFCS_BUTTONRADIOMASK Radyo düğmesi için maske (nonsquare maske gerekiyor)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Kapat düğmesi

    • DFCS_CAPTIONHELP Yardım düğmesi

    • DFCS_CAPTIONMAX Ekranı Kapla düğmesi

    • DFCS_CAPTIONMIN Simge Durumuna Küçült düğmesi

    • DFCS_CAPTIONRESTORE Geri Yükle düğmesi

  • DFC_MENU

    • DFCS_MENUARROW Alt menü oku

    • DFCS_MENUBULLET Mermi

    • DFCS_MENUCHECK Onay işareti

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Birleşik giriş kutusu kaydırma çubuğu

    • DFCS_SCROLLDOWN Kaydırma çubuğunun aşağı oku

    • DFCS_SCROLLLEFT Kaydırma çubuğunun sol oku

    • DFCS_SCROLLRIGHT Kaydırma çubuğunun sağ oku

    • DFCS_SCROLLSIZEGRIP Pencerenin sağ alt köşesindeki boyut kavrama

    • DFCS_SCROLLUP Kaydırma çubuğunun yukarı oku

Örnek

Bu kod, pencerenizin sağ alt köşesindeki boyut tutucuyu çizer. Stilleri olmayan ve normalde boyut kavrama özelliği verebilen başka denetimler (durum çubuğu gibi) içermeyen bir iletişim kutusunun işleyicisi için OnPaint uygundur.

void CDCView::DrawFC(CDC *pDC)
{
   CRect rc;
   GetClientRect(&rc);

   rc.left = rc.right - ::GetSystemMetrics(SM_CXHSCROLL);
   rc.top = rc.bottom - ::GetSystemMetrics(SM_CYVSCROLL);

   pDC->DrawFrameControl(rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
}

CDC::DrawIcon

Geçerli CDC nesne tarafından temsil edilen cihazda bir simge çizer.

BOOL DrawIcon(
    int x,
    int y,
    HICON hIcon);

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Parametreler

x
Simgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y
Simgenin sol üst köşesinin mantıksal y koordinatını belirtir.

hIcon
Çizilecek simgenin tutamacını tanımlar.

point
Simgenin sol üst köşesinin mantıksal x ve y koordinatlarını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

İşlev başarıyla tamamlandıysa sıfır olmayan; aksi takdirde 0.

Açıklamalar

işlevi, simgenin sol üst köşesini ve ytarafından x belirtilen konuma yerleştirir. Konum, cihaz bağlamının geçerli eşleme moduna tabidir.

Simge kaynağı daha önce , CWinApp::LoadStandardIconveya CWinApp::LoadOEMIconişlevleri CWinApp::LoadIconkullanılarak yüklenmiş olmalıdır. Bu MM_TEXT işlev kullanmadan önce eşleme modu seçilmelidir.

Örnek

örneğine CWnd::IsIconicbakın.

CDC::DrawState

Bu üye işlevini çağırarak bir görüntü görüntüleyin ve devre dışı veya varsayılan durum gibi bir durumu göstermek için görsel efekt uygulayın.

Not

dışındaki tüm nFlag durumlar için DSS_NORMAL, görsel efekti uygulanmadan önce görüntü tek renkliye dönüştürülür.

BOOL DrawState(
    CPoint pt,
    CSize size,
    HBITMAP hBitmap,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    CBitmap* pBitmap,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    CBrush* pBrush = NULL);

Parametreler

pt
Görüntünün konumunu belirtir.

size
Görüntünün boyutunu belirtir.

hBitmap
Bit eşlem tutamacı.

nFlags
Görüntü türünü ve durumunu belirten bayraklar. Olası nFlags türleri ve durumları için BkzDrawState. Windows SDK'sı.

hBrush
Fırçanın tutamacı.

pBitmap
Nesne işaretçisi CBitmap .

pBrush
Nesne işaretçisi CBrush .

hIcon
Simgenin tutamacı.

lpszText
Metin işaretçisi.

bPrefixText
Hızlandırıcı anımsatıcısı içerebilen metin. lData parametresi dizenin adresini, parametresi ise nTextLen uzunluğunu belirtir. 0 ise nTextLen , dizenin null olarak sonlandırıldığı varsayılır.

nTextLen
tarafından lpszTextişaret edilen metin dizesinin uzunluğu. 0 ise nTextLen , dizenin null olarak sonlandırıldığı varsayılır.

lpDrawProc
Bir görüntüyü işlemek için kullanılan geri çağırma işlevinin işaretçisi. içindeki görüntü türü nFlags ise bu DST_COMPLEXparametre gereklidir. İsteğe bağlıdır ve görüntü türü ise DST_TEXTolabilirNULL. Diğer tüm görüntü türleri için bu parametre yoksayılır. Geri çağırma işlevi hakkında daha fazla bilgi için Bkz DrawStateProc . Windows SDK'sında işlev.

lData
Görüntü hakkındaki bilgileri belirtir. Bu parametrenin anlamı görüntü türüne bağlıdır.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

CDC::DrawText

Verilen dikdörtgendeki metni biçimlendirmek için bu üye işlevini çağırın. Daha fazla biçimlendirme seçeneği belirtmek için kullanın CDC::DrawTextEx.

virtual int DrawText(
    LPCTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat);

int DrawText(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat);

Parametreler

lpszString
Çizilecek dizeyi gösterir. -1 ise nCount , dize null olarak sonlandırılmalıdır.

nCount
Dizedeki karakter sayısını belirtir. -1 ise nCount , lpszString null ile sonlandırılan bir dize için uzun bir işaretçi olduğu varsayılır ve DrawText karakter sayısını otomatik olarak hesaplar.

lpRect
Metnin biçimlendirileceği dikdörtgeni (mantıksal koordinatlarda) içeren bir RECT yapıya veya CRect nesneye işaret eder.

str
CString Çizilecek belirtilen karakterleri içeren bir nesne.

nFormat
Metni biçimlendirme yöntemini belirtir. Windows SDK'sında parametresi DrawText için açıklanan değerlerin uFormat herhangi bir bileşimi olabilir. (bit düzeyinde OR işlecini kullanarak birleştirin):

Not

Bazı uFormat bayrak bileşimleri, geçirilen dizenin değiştirilmesine neden olabilir. veya DT_MODIFYSTRING ile kullanmak DT_END_ELLIPSIS DT_PATH_ELLIPSIS dizenin değiştirilmesine neden olabilir ve geçersiz kılmada bir onay işlemine CString neden olabilir. , , DT_EXTERNALLEADING, DT_NOCLIPDT_INTERNALve DT_NOPREFIX değerleri DT_CALCRECTdeğerle DT_TABSTOP kullanılamaz.

Dönüş Değeri

İşlev başarılı olursa metnin yüksekliği.

Açıklamalar

Sekmeleri uygun boşluklara genişleterek, metni verilen dikdörtgenin soluna, sağa veya ortasına hizalayarak ve metni verilen dikdörtgene sığan çizgilere bölerek metni biçimlendirir. Biçimlendirme türü tarafından nFormatbelirtilir.

Bu üye işlevi, cihaz bağlamı tarafından seçilen yazı tipini, metin rengini ve arka plan rengini kullanarak metni çizer. DT_NOCLIP Biçim kullanılmadığı sürece, DrawText metnin verilen dikdörtgenin dışında görünmemesi için metni klipler. Biçim verilmediği sürece tüm biçimlendirmenin birden çok satıra DT_SINGLELINE sahip olduğu varsayılır.

Seçilen yazı tipi belirtilen dikdörtgen için çok büyükse, DrawText üye işlevi daha küçük bir yazı tipinin yerini almaz.

DT_CALCRECT Bayrağı belirtilirse, tarafından lpRect belirtilen dikdörtgen metni çizmek için gereken genişliği ve yüksekliği yansıtacak şekilde güncelleştirilir.

TA_UPDATECP Metin hizalama bayrağı ayarlanmışsa (bkzCDC::SetTextAlign. ), DrawText verilen dikdörtgenin solu yerine geçerli konumdan başlayan metni görüntüler. DrawText bayrağı ayarlandığında metni TA_UPDATECP kaydırmaz (başka bir ifadeyle bayrağın DT_WORDBREAK hiçbir etkisi olmaz).

Metin rengi tarafından CDC::SetTextColorayarlanabilir.

CDC::DrawTextEx

Verilen dikdörtgendeki metni biçimlendirin.

virtual int DrawTextEx(
    LPTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

int DrawTextEx(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

Parametreler

lpszString
Çizilecek dizeyi gösterir. -1 ise nCount , dize null olarak sonlandırılmalıdır.

nCount
Dizedeki karakter sayısını belirtir. -1 ise nCount , lpszString null ile sonlandırılan bir dize için uzun bir işaretçi olduğu varsayılır ve DrawText karakter sayısını otomatik olarak hesaplar.

lpRect
Metnin biçimlendirileceği dikdörtgeni (mantıksal koordinatlarda) içeren bir RECT yapıya veya CRect nesneye işaret eder.

str
CString Çizilecek belirtilen karakterleri içeren bir nesne.

nFormat
Metni biçimlendirme yöntemini belirtir. Windows SDK'sında parametresi DrawText için açıklanan değerlerin uFormat herhangi bir bileşimi olabilir. (Bit düzeyinde kullanarak birleştirmeOR işleci:

Not

Bazı uFormat bayrak bileşimleri, geçirilen dizenin değiştirilmesine neden olabilir. veya DT_MODIFYSTRING ile kullanmak DT_END_ELLIPSIS DT_PATH_ELLIPSIS dizenin değiştirilmesine neden olabilir ve geçersiz kılmada bir onay işlemine CString neden olabilir. , , DT_EXTERNALLEADING, DT_NOCLIPDT_INTERNALve DT_NOPREFIX değerleri DT_CALCRECTdeğerle DT_TABSTOP kullanılamaz.

lpDTParams
Daha fazla biçimlendirme seçeneği belirten bir DRAWTEXTPARAMS yapı işaretçisi. Bu parametre olabilir NULL.

Açıklamalar

Sekmeleri uygun boşluklara genişleterek, metni verilen dikdörtgenin soluna, sağa veya ortasına hizalayarak ve metni verilen dikdörtgene sığan çizgilere bölerek metni biçimlendirir. Biçimlendirme türü ve lpDTParamstarafından nFormat belirtilir. Daha fazla bilgi için windows SDK'sında ve DrawTextEx bölümüne bakınCDC::DrawText.

Metin rengi tarafından CDC::SetTextColorayarlanabilir.

CDC::Ellipse

Üç nokta çizer.

BOOL Ellipse(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Ellipse(LPCRECT lpRect);

Parametreler

x1
Üç noktanın sınırlayıcı dikdörtgeninin sol üst köşesinin mantıksal x koordinatını belirtir.

y1
Üç noktanın sınırlayıcı dikdörtgeninin sol üst köşesinin mantıksal y koordinatını belirtir.

x2
Üç noktanın sınırlayıcı dikdörtgeninin sağ alt köşesinin mantıksal x koordinatını belirtir.

y2
Üç noktanın sınırlayıcı dikdörtgeninin sağ alt köşesinin mantıksal y koordinatını belirtir.

lpRect
Üç noktanın sınırlayıcı dikdörtgenini belirtir. Bu parametre için bir CRect nesne de geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Üç noktanın merkezi, , , x2y1ve y2veya lpRecttarafından x1belirtilen sınırlayıcı dikdörtgenin merkezidir. Elips geçerli kalemle çizilir ve iç kısmı geçerli fırçayla doldurulur.

Bu işlev tarafından çizilen şekil, sağ ve alt koordinatlara kadar uzanır ancak bu rakamı içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir.

Sınırlayıcı dikdörtgenin genişliği veya yüksekliği 0 ise, elips çizilmemiştir.

CDC::EndDoc

Üye işlevine yapılan bir çağrıyla başlatılan yazdırma işini sonlandırır StartDoc .

int EndDoc();

Dönüş Değeri

İşlev başarılı olursa 0'dan büyük veya buna eşit veya hata oluşursa negatif bir değer.

Açıklamalar

Bu üye işlevi yazıcı çıkışını ENDDOC değiştirir ve başarılı bir yazdırma işi tamamlandıktan hemen sonra çağrılmalıdır.

Bir uygulama yazdırma hatasıyla veya iptal edilmiş yazdırma işlemiyle karşılaşırsa veya AbortDockullanarak EndDoc işlemi sonlandırmayı denememelidir. GDI, hata değerini döndürmeden önce işlemi otomatik olarak sonlandırır.

Bu işlev meta dosyaları içinde kullanılmamalıdır.

Örnek

örneğine CDC::StartDocbakın.

CDC::EndPage

Cihaza uygulamanın bir sayfaya yazmayı bitirdiğini bildirir.

int EndPage();

Dönüş Değeri

İşlev başarılı olursa 0'dan büyük veya buna eşit veya hata oluşursa negatif bir değer.

Açıklamalar

Bu üye işlevi genellikle cihaz sürücüsünü yeni bir sayfaya ilerlemeye yönlendirmek için kullanılır.

Bu üye işlevi yazıcı çıkışının NEWFRAME yerini alır. 'den farklı olarak NEWFRAME, bu işlev her zaman sayfa yazdırıldıktan sonra çağrılır.

Örnek

örneğine CDC::StartDocbakın.

CDC::EndPath

Bir yol ayracı kapatır ve ayraç tarafından cihaz bağlamı içinde tanımlanan yolu seçer.

BOOL EndPath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Örnek

örneğine CDC::BeginPathbakın.

CDC::EnumObjects

Cihaz bağlamında kullanılabilen kalemleri ve fırçaları numaralandırır.

int EnumObjects(
    int nObjectType,
    int (CALLBACK* lpfn)(
    LPVOID,
    LPARAM),
    LPARAM lpData);

Parametreler

nObjectType
Nesne türünü belirtir. veya OBJ_PENdeğerlerine OBJ_BRUSH sahip olabilir.

lpfn
Uygulama tarafından sağlanan geri çağırma işlevinin yordam örneği adresidir. Aşağıdaki "Açıklamalar" bölümüne bakın.

lpData
Uygulama tarafından sağlanan verileri gösterir. Veriler, nesne bilgileriyle birlikte geri çağırma işlevine geçirilir.

Dönüş Değeri

Geri çağırma işlevi tarafından döndürülen son değeri belirtir. Anlamı kullanıcı tanımlıdır.

Açıklamalar

Belirli bir türdeki her nesne için geçirdiğiniz geri çağırma işlevi, bu nesnenin bilgileriyle birlikte çağrılır. Sistem, başka nesne kalmayıncaya veya geri çağırma işlevi 0 döndürene kadar geri çağırma işlevini çağırır.

Microsoft Visual C++ uygulamasının yeni özellikleri, işlevi 'ye geçirilirken sıradan bir işlev kullanmanıza EnumObjectsolanak tanır. geçirilen EnumObjects adres, Pascal çağrı kuralıyla ve ile EXPORT dışarı aktarılan bir işlevin işaretçisidir. Koruma modu uygulamalarında bu işlevi Windows işleviyle oluşturmanız veya Windows MakeProcInstance işleviyle FreeProcInstance kullandıktan sonra işlevi serbest bırakmanız gerekmez.

Ayrıca uygulamanızın modül tanımı dosyasındaki bir EXPORTS deyimde işlev adını dışarı aktarmanız gerekmez. Bunun yerine işlev değiştiricisini EXPORT aşağıdaki gibi kullanabilirsiniz:

int CALLBACK EXPORT AFunction (LPSTR, LPSTR);

derleyicinin diğer ad kullanmadan ada göre dışarı aktarma için uygun dışarı aktarma kaydını yaymasına neden olur. Bu, çoğu ihtiyaç için işe yarar. İşlevi sıralı olarak dışarı aktarma veya dışarı aktarmaya diğer ad ekleme gibi bazı özel durumlarda, modül tanımı dosyasında bir deyimi kullanmanız EXPORTS gerekir.

Microsoft Foundation programlarını derlemek için normalde ve /GEs derleyici seçeneklerini kullanırsınız/GA. Derleyici /Gw seçeneği Microsoft Foundation sınıflarıyla kullanılmaz. (Windows işlevini MakeProcInstancekullanıyorsanız, döndürülen işlev işaretçisini FARPROC bu API'de gereken türe açıkça atamanız gerekir.) Geri çağırma kayıt arabirimleri artık tür açısından güvenlidir (belirli bir geri çağırma için doğru işlev türünü gösteren bir işlev işaretçisi geçirmeniz gerekir).

Ayrıca, windows'a dönmeden önce tüm geri çağırma işlevlerinin Microsoft Foundation özel durumlarını yakalaması gerekir çünkü geri çağırma sınırları boyunca özel durumlar oluşturulamaz. Özel durumlar hakkında daha fazla bilgi için Özel durumlar makalesine bakın.

Örnek

// print some info about a pen we're ready to enumerate
BOOL CALLBACK EnumObjectHandler(LPVOID lpLogObject, LPARAM /* lpData */)
{
   LOGPEN *pPen = (LOGPEN *)lpLogObject;

   switch (pPen->lopnStyle)
   {
   case PS_SOLID:
      TRACE0("PS_SOLID:      ");
      break;
   case PS_DASH:
      TRACE0("PS_DASH:       ");
      break;
   case PS_DOT:
      TRACE0("PS_DOT:        ");
      break;
   case PS_DASHDOT:
      TRACE0("PS_DASHDOT:    ");
      break;
   case PS_DASHDOTDOT:
      TRACE0("PS_DASHDOTDOT: ");
      break;
   case PS_NULL:
      TRACE0("PS_NULL:       ");
      break;
   case PS_INSIDEFRAME:
      TRACE0("PS_INSIDEFRAME:");
      break;
   default:
      TRACE0("unk style:");
   }

   TRACE2("Color: 0x%8.8X, Width: %d\n", pPen->lopnColor, pPen->lopnWidth);
   return TRUE;
}

// get the default printer and enumerate the pens it has
void CDCView::OnEnumPens()
{
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();
   HDC hdc = dlg.GetPrinterDC();

   if (hdc != NULL)
   {
      CDC dc;
      dc.Attach(hdc);
      VERIFY(dc.EnumObjects(OBJ_PEN, EnumObjectHandler, 0));
   }
}

CDC::Escape

Bu üye işlevi Win32 programlaması için pratikte kullanım dışıdır.

virtual int Escape(
    int nEscape,
    int nCount,
    LPCSTR lpszInData,
    LPVOID lpOutData);

int Escape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData,
    int nOutputSize,
    LPSTR lpszOutputData);

Parametreler

nEscape
Gerçekleştirilecek kaçış işlevini belirtir.

Kaçış işlevlerinin tam listesi için Bkz Escape . Windows SDK'sında.

nCount
tarafından lpszInDataişaret edilen veri bayt sayısını belirtir.

lpszInData
Bu kaçış için gereken giriş veri yapısını gösterir.

lpOutData
Bu çıkıştan çıkış almak için yapıyı gösterir. lpOutData parametresi, NULL veri döndürülmediyse olur.

nInputSize
parametresi tarafından işaret edilen lpszInputData veri bayt sayısını belirtir.

lpszInputData
Belirtilen kaçış için gereken giriş yapısını gösterir.

nOutputSize
parametresi tarafından işaret edilen lpszOutputData veri bayt sayısını belirtir.

lpszOutputData
Bu çıkıştan çıkış alan yapıya işaret eder. Veri döndürülmezse bu parametre olmalıdır NULL .

Dönüş Değeri

İşlev başarılı olursa, yalnızca uygulamayı denetleyen kaçış dışında QUERYESCSUPPORT pozitif bir değer döndürülür. Kaçış uygulanmazsa sıfır döndürülür. Hata oluşursa negatif bir değer döndürülür. Yaygın hata değerleri şunlardır:

  • SP_ERROR Genel hata.

  • SP_OUTOFDISK Şu anda biriktirme için yeterli disk alanı yok ve artık kullanılabilir alan olmayacak.

  • SP_OUTOFMEMORY Biriktirme için yeterli bellek yok.

  • SP_USERABORT Kullanıcı, yazdırma yöneticisi aracılığıyla işi sona erdirdi.

Açıklamalar

Özgün yazıcı kaçışları yalnızca QUERYESCSUPPORT Win32 uygulamaları için desteklenir. Diğer tüm yazıcı çıkışları eskidir ve yalnızca 16 bit uygulamalarla uyumluluk için desteklenir.

Win32 programlaması için artık CDC karşılık gelen yazıcı çıkışlarının yerine geçen altı üye işlevi sağlar:

Ayrıca, CDC::GetDeviceCaps diğer yazıcı çıkışlarının yerini alan Win32 dizinlerini destekler. Daha fazla bilgi için Bkz GetDeviceCaps . Windows SDK'sı.

Bu üye işlevi, uygulamaların belirli bir cihazın GDI üzerinden doğrudan kullanılabilir olmayan tesislerine erişmesine olanak tanır.

Uygulamanız önceden tanımlanmış kaçış değerleri kullanıyorsa ilk sürümü kullanın. Uygulamanız özel kaçış değerlerini tanımlıyorsa ikinci sürümü kullanın. İkinci sürüm hakkında daha fazla bilgi için Bkz ExtEscape . Windows SDK'sı.

CDC::ExcludeClipRect

Mevcut kırpma bölgesi eksi belirtilen dikdörtgenden oluşan yeni bir kırpma bölgesi oluşturur.

int ExcludeClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int ExcludeClipRect(LPCRECT lpRect);

Parametreler

x1
Dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y1
Dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.

x2
Dikdörtgenin sağ alt köşesinin mantıksal x koordinatını belirtir.

y2
Dikdörtgenin sağ alt köşesinin mantıksal y koordinatını belirtir.

lpRect
Dikdörtgeni belirtir. Bir nesne de olabilir CRect .

Dönüş Değeri

Yeni kırpma bölgesinin türünü belirtir. Aşağıdaki değerlerden herhangi biri olabilir:

  • COMPLEXREGION Bölgenin kenarlıkları çakışıyor.

  • ERROR Hiçbir bölge oluşturulmadı.

  • NULLREGION Bölge boş.

  • SIMPLEREGION Bölgenin üst üste gelen kenarlıkları yok.

Açıklamalar

mutlak değeriyle x2 - x1belirtilen dikdörtgenin genişliği 32.767 birimi aşmamalıdır. Bu sınır dikdörtgenin yüksekliği için de geçerlidir.

CDC::ExcludeUpdateRgn

Penceredeki güncelleştirilmiş bir bölgeyi nesneyle ilişkilendirilmiş kırpma bölgesinden dışlayarak, pencerenin geçersiz alanları içinde çizim yapılmasını CDC engeller.

int ExcludeUpdateRgn(CWnd* pWnd);

Parametreler

pWnd
Penceresi güncelleştirilmekte olan pencere nesnesini gösterir.

Dönüş Değeri

Dışlanan bölgenin türü. Aşağıdaki değerlerden herhangi biri olabilir:

  • COMPLEXREGION Bölgenin kenarlıkları çakışıyor.

  • ERROR Hiçbir bölge oluşturulmadı.

  • NULLREGION Bölge boş.

  • SIMPLEREGION Bölgenin üst üste gelen kenarlıkları yok.

CDC::ExtFloodFill

Ekran yüzeyinin bir alanını geçerli fırçayla doldurur.

BOOL ExtFloodFill(
    int x,
    int y,
    COLORREF crColor,
    UINT nFillType);

Parametreler

x
Doldurmanın başladığı noktanın mantıksal x koordinatını belirtir.

y
Doldurmanın başladığı noktanın mantıksal y koordinatını belirtir.

crColor
Sınırın veya doldurulacak alanın rengini belirtir. 'nin yorumlanması crColor değerine nFillTypebağlıdır.

nFillType
Gerçekleştirilecek taşma dolgusu türünü belirtir. Aşağıdaki değerlerden biri olmalıdır:

  • FLOODFILLBORDER Dolgu alanı tarafından belirtilen renkle crColorsınırlanır. Bu stil, tarafından FloodFillgerçekleştirilen dolgu ile aynıdır.

  • FLOODFILLSURFACE Dolgu alanı tarafından crColorbelirtilen renge göre tanımlanır. Dolgu, renkle karşılaşıldığında tüm yönlerde dışa doğru devam eder. Bu stil, çok renkli sınırları olan alanları doldurmak için kullanışlıdır.

Dönüş Değeri

İşlev başarılı olursa sıfır olmayan; aksi takdirde 0 dolgu tamamlanamadıysa, verilen nokta tarafından crColor belirtilen sınır rengine sahipse ( FLOODFILLBORDER istendiyse), belirtilen nokta tarafından crColor belirtilen renge sahip değilse (istendiyse FLOODFILLSURFACE ) veya nokta kırpma bölgesinin dışındaysa.

Açıklamalar

Bu üye işlevi, içinde nFillTypebir doldurma türü belirtebileceğinizden daha FloodFill fazla esneklik sunar.

olarak ayarlanırsa nFillType FLOODFILLBORDER, alanın tarafından crColorbelirtilen renkle tamamen sınırlandığı varsayılır. İşlev, ve y tarafından x belirtilen noktada başlar ve renk sınırına kadar tüm yönleri doldurur.

olarak ayarlanırsa nFillType FLOODFILLSURFACE, işlevi tarafından x belirtilen noktada başlar ve y ile belirtilen crColorrengi içeren tüm bitişik alanları doldurarak tüm yönlerde devam eder.

Yalnızca raster-display teknolojisini destekleyen bellek-cihaz bağlamları ve cihazları desteği ExtFloodFill. Daha fazla bilgi için bkz GetDeviceCaps . üye işlevi.

CDC::ExtTextOut

Seçili durumdaki yazı tipini kullanarak dikdörtgen bir bölge içinde bir karakter dizesi yazmak için bu üye işlevini çağırın.

virtual BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    LPCTSTR lpszString,
    UINT nCount,
    LPINT lpDxWidths);

BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    const CString& str,
    LPINT lpDxWidths);

Parametreler

x
Belirtilen dizedeki ilk karakter için karakter hücresinin mantıksal x koordinatını belirtir.

y
Belirtilen dizedeki ilk karakter için karakter hücresinin üst kısmındaki mantıksal y koordinatını belirtir.

nOptions
Dikdörtgen türünü belirtir. Bu parametre, aşağıdaki değerlerden biri veya ikisi de olabilir:

  • ETO_CLIPPED Metnin dikdörtgene kırpıldığını belirtir.

  • ETO_OPAQUE Geçerli arka plan renginin dikdörtgeni doldurduğunu belirtir. (ve üye işlevleriyle SetBkColor geçerli arka plan rengini ayarlayabilir ve GetBkColor sorgulayabilirsiniz.)

lpRect
Dikdörtgenin boyutlarını belirleyen bir RECT yapıya işaret eder. Bu parametre olabilir NULL. Bu parametre için bir CRect nesne de geçirebilirsiniz.

lpszString
Çizilecek belirtilen karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.

nCount
Dizedeki karakter sayısını belirtir.

lpDxWidths
Bitişik karakter hücrelerinin çıkış noktaları arasındaki uzaklığı gösteren bir değer dizisine işaret eder. Örneğin, lpDxWidths[ i] mantıksal birimleri karakter hücresinin çıkış noktalarını ve karakter hücresi i i + 1'i ayırır. ise lpDxWidths NULL, ExtTextOut karakterler arasındaki varsayılan aralığı kullanır.

str
CString Çizilecek belirtilen karakterleri içeren bir nesne.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Dikdörtgen bölge opak (geçerli arka plan rengiyle doldurulmuş) ve bir kırpma bölgesi olabilir.

nOptions 0 ve lpRect iseNULL, işlev dikdörtgen bir bölge kullanmadan cihaz bağlamı için metin yazar. Varsayılan olarak, geçerli konum işlev tarafından kullanılmaz veya güncelleştirilmez. Bir uygulamanın çağırdığında ExtTextOutgeçerli konumu güncelleştirmesi gerekiyorsa, uygulama olarak ayarlanmış TA_UPDATECPüye işlevini SetTextAlign nFlags çağırabilirCDC. Bu bayrak ayarlandığında, Windows sonraki çağrıları x y ExtTextOut yoksayar ve bunun yerine geçerli konumu kullanır. Bir uygulama geçerli konumu güncelleştirmek için kullandığında TA_UPDATECP , ExtTextOut geçerli konumu önceki metin satırının sonuna veya dizinin son öğesi tarafından lpDxWidthsbelirtilen konumuna (hangisi daha büyükse) ayarlar.

CDC::FillPath

Geçerli yoldaki açık şekilleri kapatır ve geçerli fırçayı ve çokgen doldurma modunu kullanarak yolun içini doldurur.

BOOL FillPath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

İç alanı doldurulduktan sonra, yol cihaz bağlamından atılır.

CDC::FillRect

Belirtilen fırçayı kullanarak belirli bir dikdörtgeni doldurmak için bu üye işlevini çağırın.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parametreler

lpRect
Doldurulacak dikdörtgenin mantıksal koordinatlarını içeren bir RECT yapıya işaret eder. Bu parametre için bir CRect nesne de geçirebilirsiniz.

pBrush
Dikdörtgeni doldurmak için kullanılan fırçayı tanımlar.

Açıklamalar

İşlev, sol ve üst kenarlıklar da dahil olmak üzere tam dikdörtgeni doldurur, ancak sağ ve alt kenarlıkları doldurmaz.

Fırçanın, , CreatePatternBrushve CreateSolidBrushüye işlevleri CreateHatchBrushkullanılarak CBrush oluşturulması veya Windows işlevi tarafından GetStockObject alınması gerekir.

Belirtilen dikdörtgeni doldururken, FillRect dikdörtgenin sağ ve alt kenarlarını içermez. GDI, geçerli eşleme modundan bağımsız olarak bir dikdörtgeni en fazla doldurur, ancak sağ sütunu ve alt satırı içermez. FillRect belirtilen dikdörtgenin top, bottom, leftve right üyelerinin değerlerini karşılaştırır. bottom değerinden küçük veya eşitse topya da değerinden küçük veya eşitse right leftdikdörtgen çizilir.

FillRect ile benzerdir CDC::FillSolidRect; ancak bir FillRect fırça alır ve bu nedenle dikdörtgeni düz bir renkle, titrek bir renkle, taranmış fırçalarla veya desenle doldurmak için kullanılabilir. FillSolidRect yalnızca düz renkler kullanır (parametreyle COLORREF gösterilir). FillRect genellikle değerinden daha FillSolidRectyavaştır.

CDC::FillRgn

tarafından pRgn belirtilen bölgeyi tarafından pBrushbelirtilen fırçayla doldurur.

BOOL FillRgn(
    CRgn* pRgn,
    CBrush* pBrush);

Parametreler

pRgn
Doldurulacak bölgeye ilişkin bir işaretçi. Belirtilen bölgenin koordinatları mantıksal birimlerde belirtilir.

pBrush
Bölgeyi doldurmak için kullanılacak fırçayı tanımlar.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Fırça , CreateSolidBrushCreatePatternBrushüye işlevleri CreateHatchBrushkullanılarak CBrush oluşturulmalı veya tarafından GetStockObjectalınmalıdır.

Örnek

örneğine CRgn::CreateRoundRectRgnbakın.

CDC::FillSolidRect

Verilen dikdörtgeni belirtilen düz renkle doldurmak için bu üye işlevini çağırın.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

void FillSolidRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clr);

Parametreler

lpRect
Sınırlayıcı dikdörtgeni belirtir (mantıksal birimlerde). Bu parametre için bir veri yapısına veya nesneye RECT işaretçi CRect geçirebilirsiniz.

clr Dikdörtgeni doldurmak için kullanılacak rengi belirtir.

x
Dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y
Hedef dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.

cx
Dikdörtgenin genişliğini belirtir.

cy
Dikdörtgenin yüksekliğini belirtir.

Açıklamalar

FillSolidRect ile çok benzer CDC::FillRect; ancak, FillSolidRect yalnızca düz renkler kullanır (parametresiyle COLORREF gösterilir), FillRect fırçayı alır ve bu nedenle dikdörtgeni düz bir renkle, titrek bir renkle, taranmış fırçalarla veya desenle doldurmak için kullanılabilir. FillSolidRect genellikle değerinden FillRectdaha hızlıdır.

Not

çağrısı FillSolidRectyaptığınızda, daha önce kullanılarak SetBkColorayarlanan arka plan rengi tarafından clrbelirtilen renge ayarlanır.

CDC::FlattenPath

Seçilen yoldaki eğrileri geçerli cihaz bağlamı içine dönüştürür ve her eğriyi bir çizgi dizisine dönüştürür.

BOOL FlattenPath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

CDC::FloodFill

Ekran yüzeyinin bir alanını geçerli fırçayla doldurur.

BOOL FloodFill(
    int x,
    int y,
    COLORREF crColor);

Parametreler

x
Doldurmanın başladığı noktanın mantıksal x koordinatını belirtir.

y
Doldurmanın başladığı noktanın mantıksal y koordinatını belirtir.

crColor
Sınırın rengini belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır olmayan; aksi takdirde, doldurma tamamlanamadıysa 0 döndürülür, belirtilen nokta tarafından crColorbelirtilen sınır rengine sahiptir veya nokta kırpma bölgesinin dışındadır.

Açıklamalar

alanının tarafından crColorbelirtildiği gibi sınırlandığı varsayılır. FloodFill işlevi tarafından x belirtilen noktada başlar ve y renk sınırına doğru tüm yönlerde devam eder.

Yalnızca raster-display teknolojisini destekleyen bellek-cihaz bağlamları ve cihazlar üye işlevini destekler FloodFill . Yetenek hakkında RC_BITBLT bilgi için bkz GetDeviceCaps . üye işlevi.

işlevi ExtFloodFill benzer bir özellik sağlar ancak daha fazla esneklik sağlar.

CDC::FrameRect

tarafından lpRectbelirtilen dikdörtgenin etrafına bir kenarlık çizer.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parametreler

lpRect
Dikdörtgenin sol üst ve sağ alt köşelerinin mantıksal koordinatlarını içeren bir RECT yapıya veya CRect nesneye işaret eder. Bu parametre için bir CRect nesne de geçirebilirsiniz.

pBrush
Dikdörtgeni çerçevelendirmek için kullanılacak fırçayı tanımlar.

Açıklamalar

işlevi, kenarlık çizmek için verilen fırçayı kullanır. Kenarlık genişliği ve yüksekliği her zaman 1 mantıksal birimdir.

Dikdörtgenin bottom koordinatı değerinden küçük veya eşitse topya da değerinden küçük veya buna eşitse right leftdikdörtgen çizilir.

tarafından FrameRect çizilen kenarlık, aynı koordinatları kullanarak üye işlevi tarafından Rectangle çizilen kenarlıkla aynı konumdadır (1 mantıksal birim genişliğinde bir kalem kullanıyorsa Rectangle ). Dikdörtgenin iç kısmı ile FrameRectdoldurulmuyor.

CDC::FrameRgn

tarafından pBrushbelirtilen fırçayı kullanarak belirtilen pRgn bölgenin çevresine bir kenarlık çizer.

BOOL FrameRgn(
    CRgn* pRgn,
    CBrush* pBrush,
    int nWidth,
    int nHeight);

Parametreler

pRgn
Kenarlık içine CRgn alınacak bölgeyi tanımlayan nesneye işaret eder. Belirtilen bölgenin koordinatları mantıksal birimlerde belirtilir.

pBrush
Kenarlık CBrush çizmek için kullanılacak fırçayı tanımlayan nesneye işaret eder.

nWidth
Cihaz birimlerindeki dikey fırça vuruşlarında kenarlık genişliğini belirtir.

nHeight
Cihaz birimlerindeki yatay fırça vuruşlarında kenarlık yüksekliğini belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Örnek

örneğine CRgn::CombineRgnbakın.

CDC::FromHandle

Cihaz bağlamı için tanıtıcı CDC verildiğinde nesneye bir işaretçi döndürür.

static CDC* PASCAL FromHandle(HDC hDC);

Parametreler

hDC
Windows cihaz bağlamı tutamacını içerir.

Dönüş Değeri

İşaretçi geçici olabilir ve anında kullanım dışında depolanmamalıdır.

Açıklamalar

Bir CDC nesne tanıtıcıya bağlı değilse, geçici CDC bir nesne oluşturulur ve eklenir.

Örnek

örneğine CPrintDialog::GetPrinterDCbakın.

CDC::GetArcDirection

Cihaz bağlamı için geçerli yay yönünü döndürür.

int GetArcDirection() const;

Dönüş Değeri

Başarılı olursa geçerli yay yönünü belirtir. Geçerli dönüş değerleri şunlardır:

  • AD_COUNTERCLOCKWISE Saat yönünün tersine çizilmiş yaylar ve dikdörtgenler.

  • AD_CLOCKWISE Arcs ve dikdörtgenler saat yönünde çizilir.

Hata oluşursa, dönüş değeri sıfır olur.

Açıklamalar

Yay ve dikdörtgen işlevleri yay yönünü kullanır.

CDC::GetAspectRatioFilter

Geçerli en boy oranı filtresinin ayarını alır.

CSize GetAspectRatioFilter() const;

Dönüş Değeri

CSize Geçerli en boy oranı filtresi tarafından kullanılan en boy oranını temsil eden nesne.

Açıklamalar

En boy oranı, bir cihazın piksel genişliği ve yüksekliği tarafından oluşturulan orandır. Bir cihazın en boy oranıyla ilgili bilgiler yazı tiplerinin oluşturulmasında, seçilmesinde ve görüntülenmesinde kullanılır. Windows, tüm kullanılabilir yazı tiplerinden belirli bir en boy oranı için tasarlanmış yazı tiplerini seçmek için en boy oranı filtresi olan özel bir filtre sağlar. Filtre, üye işlevi tarafından SetMapperFlags belirtilen en boy oranını kullanır.

CDC::GetBkColor

Geçerli arka plan rengini döndürür.

COLORREF GetBkColor() const;

Dönüş Değeri

RGB renk değeri.

Açıklamalar

Arka plan modu ise OPAQUE, sistem stil çizgilerindeki boşlukları, fırçalardaki taranmış çizgiler arasındaki boşlukları ve karakter hücrelerindeki arka planı doldurmak için arka plan rengini kullanır. Sistem, bit eşlemleri renk ve tek renkli cihaz bağlamları arasında dönüştürürken arka plan rengini de kullanır.

CDC::GetBkMode

Arka plan modunu döndürür.

int GetBkMode() const;

Dönüş Değeri

veya TRANSPARENTolabilecek OPAQUE geçerli arka plan modu.

Açıklamalar

Arka plan modu, sistemin metin çizmeden önce çizim yüzeyindeki mevcut arka plan renklerini mi, taranmış fırçaları mı yoksa düz çizgi olmayan kalem stilini mi kaldırdığını tanımlar.

CDC::GetBoundsRect

Belirtilen cihaz bağlamı için geçerli birikmiş sınırlayıcı dikdörtgeni döndürür.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Parametreler

lpRectBounds
Geçerli sınırlayıcı dikdörtgeni alacak arabelleğe işaret eder. Dikdörtgen mantıksal koordinatlarda döndürülür.

flags
Sınırlayıcı dikdörtgenin döndürüldükten sonra temizlenip temizlenmeyeceğini belirtir. Bu parametre sıfır olmalıdır veya aşağıdaki değere ayarlanmalıdır:

  • DCB_RESET Sınırlayıcı dikdörtgen döndürüldükten sonra temizlenecek şekilde zorlar.

Dönüş Değeri

İşlev başarılı olursa sınırlayıcı dikdörtgenin geçerli durumunu belirtir. Aşağıdaki değerlerin bir bileşimi olabilir:

  • DCB_ACCUMULATE Sınırlayıcı dikdörtgen birikimi oluşuyor.

  • DCB_RESET Sınırlayıcı dikdörtgen boş.

  • DCB_SET Sınırlayıcı dikdörtgen boş değil.

  • DCB_ENABLE Sınırlayıcı birikmesi açık.

  • DCB_DISABLE Sınırlayıcı birikmesi kapalı.

CDC::GetBrushOrg

Cihaz bağlamı için seçili olan fırçanın çıkış noktasını (cihaz birimlerinde) alır.

CPoint GetBrushOrg() const;

Dönüş Değeri

Fırçanın nesne olarak CPoint geçerli kaynağı (cihaz birimlerinde).

Açıklamalar

İlk fırça başlangıcı, istemci alanının (0,0) konumundadır. Dönüş değeri, bu noktayı masaüstü penceresinin başlangıcına göre cihaz birimlerinde belirtir.

CDC::GetCharacterPlacement

Bir karakter dizesinde çeşitli bilgi türlerini alır.

DWORD GetCharacterPlacement(
    LPCTSTR lpString,
    int nCount,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

DWORD GetCharacterPlacement(
    CString& str,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

Parametreler

lpString
İşlenmek üzere karakter dizesinin işaretçisi.

nCount
Dizenin uzunluğunu belirtir. ANSI sürümü için bu bir BYTE sayıdır ve Unicode işlevi için bir WORD sayıdır. Daha fazla bilgi için bkz. GetCharacterPlacement.

nMaxExtent
Dizenin işlendiği üst sınırı (mantıksal birimlerde) belirtir. İşlenirse bu kapsamı aşacak karakterler yoksayılır. Gerekli sıralama veya glif dizileri için hesaplamalar yalnızca dahil edilen karakterler için geçerlidir. Bu parametre yalnızca değer parametresinde dwFlags belirtilmişse GCP_MAXEXTENT kullanılır. İşlev giriş dizesini işlerken, her karakter ve kapsamı çıkışa, uzantıya ve diğer dizilere yalnızca toplam kapsam üst sınırı henüz aşmamışsa eklenir. Sınıra ulaşıldıktan sonra işlem durdurulacaktır.

lpResults
İşlevin sonuçlarını alan bir GCP_Results yapı işaretçisi.

dwFlags
Dizenin gerekli dizilere nasıl işlendiği belirtir. Bu parametre, konunun bölümünde GetCharacterPlacement listelenen dwFlags değerlerden biri veya daha fazlası olabilir.

str
İşlenmek üzere bir CString nesnenin işaretçisi.

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri dizenin mantıksal birimlerdeki genişliği ve yüksekliğidir.

İşlev başarısız olursa, dönüş değeri sıfır olur.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetCharacterPlacementişlevselliğine öykünmektedir.

CDC::GetCharABCWidths

Geçerli TrueType yazı tipinden belirtilen aralıktaki ardışık karakterlerin genişliklerini alır.

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABC lpabc) const;

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABCFLOAT lpABCF) const;

Parametreler

nFirstChar
Karakter genişliklerinin döndürüldiği geçerli yazı tipindeki karakter aralığındaki ilk karakteri belirtir.

nLastChar
Karakter genişliklerinin döndürüldiği geçerli yazı tipindeki karakter aralığındaki son karakteri belirtir.

lpabc
İşlev döndürdüğünde karakter genişliklerini alan bir yapı dizisine ABC işaret eder. Bu dizi, ve nLastChar parametreleri tarafından nFirstChar belirtilen aralıkta karakter sayısı kadar en az ABC sayıda yapı içermelidir.

lpABCF
İşlev döndürdüğünde karakter genişliklerini almak için bir dizi ABCFLOAT yapı içeren uygulama tarafından sağlanan arabelleğe işaret eder. Bu işlev tarafından döndürülen genişlikler IEEE kayan nokta biçimindedir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Genişlikler mantıksal birimler halinde döndürülür. Bu işlev yalnızca TrueType yazı tipleri ile başarılı olur.

TrueType rasterizer, belirli bir nokta boyutu seçildikten sonra "ABC" karakter aralığı sağlar. "A" aralığı, karakteri yerleştirmeden önce geçerli konuma eklenen uzaklıktır. "B" aralığı, karakterin siyah bölümünün genişliğidir. Karakterin sağındaki boşluğu hesaba katmak için geçerli konuma "C" aralığı eklenir. Toplam gelişmiş genişlik A + B + C tarafından verilir.

GetCharABCWidths Üye işlevi bir karakter için negatif "A" veya "C" genişlikleri aldığında, bu karakter alt mesafeleri veya kullanma mesafelerini içerir.

ABC genişliklerini yazı tipi tasarım birimlerine dönüştürmek için, uygulamanın yüksekliği (yapı üyesinde belirtildiği gibi) yapı üyesinde lfHeight LOGFONT ntmSizeEM depolanan değere eşit olan bir yazı tipi oluşturması NEWTEXTMETRIC gerekir. (Üyenin ntmSizeEM değeri Windows işlevi çağrılarak EnumFontFamilies alınabilir.)

Varsayılan karakterin ABC genişlikleri, seçili durumdaki yazı tipi aralığının dışında kalan karakterler için kullanılır.

TrueType olmayan yazı tiplerindeki karakterlerin genişliklerini almak için uygulamalar Windows işlevini kullanmalıdır GetCharWidth .

CDC::GetCharABCWidthsI

Geçerli TrueType yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal birimler halinde alır.

BOOL GetCharABCWidthsI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPABC lpabc) const;

Parametreler

giFirst
Geçerli yazı tipindeki ardışık karakter dizinleri grubundaki ilk glif dizinini belirtir. Bu parametre yalnızca parametresi ise pgi NULLkullanılır.

cgi
Glif dizinlerinin sayısını belirtir.

pgi
Karakter dizinleri içeren bir dizi işaretçisi. değer ise NULLparametresi giFirst kullanılır. cgi parametresi, bu dizideki glif dizinlerinin sayısını belirtir.

lpabc
Karakter genişliklerini alan bir yapı dizisinin ABC işaretçisi. Bu dizi, parametresi tarafından cgi belirtilen glif dizinleri kadar en az sayıda ABC yapı içermelidir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetCharABCWidthsIişlevselliğine öykünmektedir.

CDC::GetCharWidth

Giriş cihazı bağlamını kullanarak m_hAttribDC, geçerli yazı tipinden ardışık bir karakter grubundaki tek tek karakterlerin genişliklerini alır.

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    float* lpFloatBuffer) const;

Parametreler

nFirstChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki ilk karakteri belirtir.

nLastChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki son karakteri belirtir.

lpBuffer
Geçerli yazı tipindeki ardışık bir karakter grubunun genişlik değerlerini alacak arabelleğe işaret eder.

lpFloatBuffer
Karakter genişliklerini almak için arabelleğe işaret eder. Döndürülen genişlikler 32 bit IEEE kayan nokta biçimindedir. (Genişlikler karakterlerin temel çizgisi boyunca ölçülür.)

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Örneğin, 'a' harfini ve nLastChar 'z' harfini tanımlarsa nFirstChar işlev tüm küçük harflerin genişliklerini alır.

işlevi tarafından işaret edilen lpBufferarabellekteki değerleri depolar. Bu arabellek tüm genişlikleri barındıracak kadar büyük olmalıdır. Başka bir ifadeyle, verilen örnekte en az 26 giriş olmalıdır.

Ardışık karakter grubundaki bir karakter belirli bir yazı tipinde yoksa, varsayılan karakterin genişlik değeri atanır.

CDC::GetCharWidthI

Geçerli yazı tipinden belirtilen aralıktaki ardışık glif dizinlerinin genişliklerini mantıksal koordinatlarda alır.

BOOL GetCharWidthI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPINT lpBuffer) const;

Parametreler

giFirst
Geçerli yazı tipindeki ardışık karakter dizinleri grubundaki ilk glif dizinini belirtir. Bu parametre yalnızca parametresi ise pgi NULLkullanılır.

cgi
Glif dizinlerinin sayısını belirtir.

pgi
Karakter dizinleri içeren bir dizi işaretçisi. değer ise NULLparametresi giFirst kullanılır. cgi parametresi, bu dizideki glif dizinlerinin sayısını belirtir.

lpBuffer
Genişlikleri alan arabellek işaretçisi.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetCharWidthIişlevselliğine öykünmektedir.

CDC::GetClipBox

Geçerli kırpma sınırının etrafındaki en sıkı sınırlayıcı dikdörtgenin boyutlarını alır.

virtual int GetClipBox(LPRECT lpRect) const;

Parametreler

lpRect
RECT Dikdörtgen boyutlarını alacak yapıya veya CRect nesneye işaret eder.

Dönüş Değeri

Kırpma bölgesinin türü. Aşağıdaki değerlerden herhangi biri olabilir:

  • COMPLEXREGION Kırpma bölgesinin kenarlıkları çakışıyor.

  • ERROR Cihaz bağlamı geçerli değil.

  • NULLREGION Kırpma bölgesi boş.

  • SIMPLEREGION Kırpma bölgesinin kenarlıkları örtüşmemiştir.

Açıklamalar

Boyutlar tarafından lpRectişaret edilen arabelleğe kopyalanır.

CDC::GetColorAdjustment

Cihaz bağlamı için renk ayarlama değerlerini alır.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Parametreler

lpColorAdjust
Renk ayarlama değerlerini almak için bir COLORADJUSTMENT veri yapısına işaret eder.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

CDC::GetCurrentBitmap

Seçili CBitmap durumdaki nesneye bir işaretçi döndürür.

CBitmap* GetCurrentBitmap() const;

Dönüş Değeri

Başarılı olursa nesne CBitmap işaretçisi; aksi takdirde NULL.

Açıklamalar

Bu üye işlevi geçici nesneler döndürebilir.

CDC::GetCurrentBrush

Seçili CBrush durumdaki nesneye bir işaretçi döndürür.

CBrush* GetCurrentBrush() const;

Dönüş Değeri

Başarılı olursa nesne CBrush işaretçisi; aksi takdirde NULL.

Açıklamalar

Bu üye işlevi geçici nesneler döndürebilir.

CDC::GetCurrentFont

Seçili CFont durumdaki nesneye bir işaretçi döndürür.

CFont* GetCurrentFont() const;

Dönüş Değeri

Başarılı olursa nesne CFont işaretçisi; aksi takdirde NULL.

Açıklamalar

Bu üye işlevi geçici nesneler döndürebilir.

CDC::GetCurrentPalette

Seçili CPalette durumdaki nesneye bir işaretçi döndürür.

CPalette* GetCurrentPalette() const;

Dönüş Değeri

Başarılı olursa nesne CPalette işaretçisi; aksi takdirde NULL.

Açıklamalar

Bu üye işlevi geçici nesneler döndürebilir.

CDC::GetCurrentPen

Seçili CPen durumdaki nesneye bir işaretçi döndürür.

CPen* GetCurrentPen() const;

Dönüş Değeri

Başarılı olursa nesne CPen işaretçisi; aksi takdirde NULL.

Açıklamalar

Bu üye işlevi geçici nesneler döndürebilir.

CDC::GetCurrentPosition

Geçerli konumu alır (mantıksal koordinatlarda).

CPoint GetCurrentPosition() const;

Dönüş Değeri

Nesne olarak CPoint geçerli konum.

Açıklamalar

Geçerli konum üye işleviyle MoveTo ayarlanabilir.

CDC::GetDCBrushColor

Geçerli fırça rengini alır.

COLORREF GetDCBrushColor() const;

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri geçerli fırça renginin değeridir COLORREF .

İşlev başarısız olursa, dönüş değeri olur CLR_INVALID.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetDCBrushColorişlevselliğine öykünmektedir.

CDC::GetDCPenColor

Geçerli kalem rengini alır.

COLORREF GetDCPenColor() const;

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri geçerli kalem renginin değeridir COLORREF .

İşlev başarısız olursa, dönüş değeri olur CLR_INVALID.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi Win32 işlevini GetDCPenColorkullanır.

CDC::GetDeviceCaps

Görüntüleme cihazı hakkında cihaza özgü çok çeşitli bilgileri alır.

int GetDeviceCaps(int nIndex) const;

Parametreler

nIndex
Döndürülecek bilgi türünü belirtir. Değerlerin listesi için Windows SDK'sında bakın GetDeviceCaps .

Dönüş Değeri

İşlev başarılı olursa istenen özelliğin değeri.

Örnek

örneğine CPrintDialog::GetDefaultsbakın.

CDC::GetFontData

Ölçeklenebilir bir yazı tipi dosyasından yazı tipi ölçümü bilgilerini alır.

DWORD GetFontData(
    DWORD dwTable,
    DWORD dwOffset,
    LPVOID lpData,
    DWORD cbData) const;

Parametreler

dwTable
Döndürülecek ölçüm tablosunun adını belirtir. Bu parametre, Microsoft Corporation tarafından yayımlanan TrueType Yazı Tipi Dosyaları belirtiminde belgelenen ölçüm tablolarından biri olabilir. Bu parametre 0 ise, bilgiler yazı tipi dosyasının başlangıcından itibaren alınır.

dwOffset
Bilgilerin alınmaya başlandığı tablonun başından uzaklığı belirtir. Bu parametre 0 ise, bilgiler parametresi tarafından dwTable belirtilen tablonun başlangıcından itibaren alınır. Bu değer tablonun GetFontData boyutundan büyük veya buna eşitse 0 döndürür.

lpData
Yazı tipi bilgilerini alacak arabelleğe işaret eder. Bu değer ise NULL, işlevi parametresinde dwTable belirtilen yazı tipi verileri için gereken arabellek boyutunu döndürür.

cbData
Alınacak bilgilerin uzunluğunu bayt cinsinden belirtir. Bu parametre 0 ise, GetFontData parametresinde dwTable belirtilen verilerin boyutunu döndürür.

Dönüş Değeri

İşlev başarılı olursa tarafından işaret edilen lpData arabellekte döndürülen bayt sayısını belirtir; aksi takdirde -1.

Açıklamalar

Alınacak bilgiler, yazı tipi dosyasına uzaklık ve döndürülecek bilgilerin uzunluğu belirtilerek tanımlanır.

Bir uygulama bazen bir TrueType yazı tipini belgeyle kaydetmek için üye işlevini kullanabilir GetFontData . Bunu yapmak için uygulama, yazı tipinin eklenip eklenemeyeceğini belirler ve ardından , dwOffsetve cbData parametreleri için 0 belirterek yazı tipi dosyasının dwTabletamamını alır.

Uygulamalar, bir yazı tipinin OUTLINETEXTMETRIC yapı üyesini otmfsType denetleyerek eklenip katıştırılamayacağını belirleyebilir. Bit 1'i otmfsType ayarlandıysa, yazı tipi için eklemeye izin verilmez. Bit 1 temizse, yazı tipi eklenebilir. Bit 2 ayarlanırsa, ekleme salt okunur olur.

Bir uygulama TrueType olmayan bir yazı tipine ilişkin bilgileri almak için bu işlevi kullanmayı denerse, GetFontData üye işlevi -1 döndürür.

CDC::GetFontLanguageInfo

Belirtilen görüntüleme bağlamı için seçili durumdaki yazı tipi hakkında bilgi döndürür.

DWORD GetFontLanguageInfo() const;

Dönüş Değeri

Dönüş değeri, seçili durumdaki yazı tipinin özelliklerini tanımlar. Olası değerlerin tam listesi için bkz GetFontLanguageInfo. .

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetFontLanguageInfoişlevselliğine öykünmektedir.

CDC::GetGlyphOutline

Geçerli yazı tipindeki bir ana hat karakteri için ana hat eğrisini veya bit eşlemini alır.

DWORD GetGlyphOutline(
    UINT nChar,
    UINT nFormat,
    LPGLYPHMETRICS lpgm,
    DWORD cbBuffer,
    LPVOID lpBuffer,
    const MAT2* lpmat2) const;

Parametreler

nChar
Bilgilerin döndürülacağı karakteri belirtir.

nFormat
İşlevin bilgi döndürme biçimini belirtir. Aşağıdaki değerlerden biri veya 0 olabilir:

Değer Anlamı
GGO_BITMAP Glif bit eşlemini döndürür. İşlev döndürdüğünde, tarafından lpBuffer işaret edilen arabellek, satırları çift kelime sınırları üzerinde başlayan 1 bit piksel başına bit eşlem içerir.
GGO_NATIVE Cihaz birimlerini kullanarak rasterleştiricinin yerel biçimindeki eğri veri noktalarını döndürür. Bu değer belirtildiğinde, içinde lpmat2 belirtilen tüm dönüştürmeler yoksayılır.

değeri nFormat 0 olduğunda işlev bir GLYPHMETRICS yapıyı doldurur ancak glif anahat verilerini döndürmez.

lpgm
Karakter hücresindeki karakterin yerleşimini açıklayan bir GLYPHMETRICS yapıya işaret eder.

cbBuffer
İşlevin ana hat karakteri hakkındaki bilgileri kopyaladığı arabelleğin boyutunu belirtir. Bu değer 0 ise ve nFormat parametre veya GGO_NATIVE değerleriyseGGO_BITMAP, işlev gerekli arabellek boyutunu döndürür.

lpBuffer
İşlevin ana hat karakteri hakkındaki bilgileri kopyaladığı arabelleğe işaret eder. Değeri belirtirse nFormat GGO_NATIVE, bilgiler ve TTPOLYCURVE yapıları biçiminde TTPOLYGONHEADER kopyalanır. Bu değer NULL veya GGO_NATIVE değeriyse ve nFormat iseGGO_BITMAP, işlev gerekli arabellek boyutunu döndürür.

lpmat2
Karakter için dönüştürme MAT2 matrisi içeren bir yapıyı gösterir. değeri için nFormatbelirtildiğinde GGO_NATIVE bile bu parametre olamazNULL.

Dönüş Değeri

0 veya lpBuffer NULLisecbBuffer, alınan bilgiler için gereken arabelleğin bayt cinsinden boyutu. Aksi takdirde, işlev başarılı olursa pozitif bir değer veya hata varsa -1 olur.

Açıklamalar

Bir uygulama, tarafından işaret lpmat2edilen yapıda 2'ye 2 dönüştürme matrisi belirterek bit eşlem biçiminde alınan karakterleri döndürebilir.

Bir karakter ana hattı, kontur dizisi olarak döndürülür. Her dağılım, bir TTPOLYGONHEADER yapı tarafından tanımlanır ve bunu tanımlamak için gereken sayıda TTPOLYCURVE yapı bulunur. Tüm noktalar yapı olarak POINTFX döndürülür ve göreli taşımaları değil mutlak konumları temsil eder. Yapının üyesi TTPOLYGONHEADER tarafından pfxStart verilen başlangıç noktası, konturun ana hattının başladığı noktadır. İzleyen TTPOLYCURVE yapılar, çok çizgili kayıtlar veya spline kayıtları olabilir. Çok çizgili kayıtlar bir dizi noktadır; noktalar arasında çizilen çizgiler, karakterin ana hattını açıklar. Spline kayıtları, TrueType tarafından kullanılan ikinci dereceden eğrileri (ikinci dereceden b-spline'lar) temsil eder.

CDC::GetGraphicsMode

Belirtilen cihaz bağlamı için geçerli grafik modunu alır.

int GetGraphicsMode() const;

Dönüş Değeri

Başarılı olduğunda geçerli grafik modunu döndürür. Bu yöntemin döndürebileceği değerlerin listesi için bkz GetGraphicsMode. .

Hata durumunda 0 döndürür.

Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.

Açıklamalar

Bu yöntem, Windows GDI işlevini GetGraphicsModesarmalar.

CDC::GetHalftoneBrush

Yarım ton fırçasını almak için bu üye işlevini çağırın.

static CBrush* PASCAL GetHalftoneBrush();

Dönüş Değeri

Başarılı olursa nesne CBrush işaretçisi; aksi takdirde NULL.

Açıklamalar

Yarım tonlu fırça, titrek desen oluşturmak için alternatif olarak ön plan ve arka plan renkleri olan pikselleri gösterir. Aşağıdaki diyagramda, yarım tonlu fırça tarafından oluşturulan titrek desen örneği gösterilmektedir:

Titrek kalem vuruşlarının nasıl oluştuğunu gösteren diyagram.

Diyagramda siyah ve sarı ön plan renginin, siyah ve sarı pikselleri birbiriyle değiştirerek bir desen halinde birleştirilerek titrek kalem vuruşu oluşturma işlemi gösterilmektedir.

CDC::GetKerningPairs

Belirtilen cihaz bağlamında seçili olan yazı tipi için karakter aralığı çiftlerini alır.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Parametreler

nPairs
tarafından lpkrnpairişaret edilen yapı sayısını KERNINGPAIR belirtir. işlevi tarafından nPairsbelirtilenden daha fazla aralık çifti kopyalamaz.

lpkrnpair
İşlev döndürdüğünde aralık çiftlerini alan bir yapı dizisine KERNINGPAIR işaret eder. Bu dizi tarafından nPairsbelirtilen en az sayıda yapı içermelidir. Bu parametre ise NULL, işlev yazı tipi için toplam aralık çifti sayısını döndürür.

Dönüş Değeri

İşlev başarılı olursa, alınan aralık çiftlerinin sayısını veya yazı tipindeki toplam karakter aralığı çiftlerinin sayısını belirtir. İşlev başarısız olursa veya yazı tipi için karakter aralığı çiftleri yoksa sıfır döndürülür.

CDC::GetLayout

Yazıcı veya meta dosyası gibi bir cihaz bağlamı için metin ve grafiklerin düzenini belirlemek için bu üye işlevini çağırın.

DWORD GetLayout() const;

Dönüş Değeri

Başarılı olursa, düzen geçerli cihaz bağlamı için bayraklar oluşturur. Tersi durumda GDI_ERROR. Genişletilmiş hata bilgileri için çağrısında bulunur GetLastError. Düzen bayraklarının listesi için bkz CDC::SetLayout. .

Açıklamalar

Varsayılan düzen soldan sağadır.

CDC::GetMapMode

Geçerli eşleme modunu alır.

int GetMapMode() const;

Dönüş Değeri

Eşleme modu.

Açıklamalar

Eşleme modlarının açıklaması için üye işlevine SetMapMode bakın.

Not

DC'yi sağdan sola düzende değiştirmeye çağırırsanız SetLayout , SetLayout eşleme modunu otomatik olarak olarak olarak MM_ISOTROPICdeğiştirir. Sonuç olarak, sonraki çağrılar GetMapMode döndürür MM_ISOTROPIC.

CDC::GetMiterLimit

Cihaz bağlamı için sicim sınırını döndürür.

float GetMiterLimit() const;

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Sönücü sınırı, gıyrıcı birleşimleri olan geometrik çizgiler çizilirken kullanılır.

CDC::GetNearestColor

Belirtilen mantıksal renkle en iyi eşleşen düz rengi döndürür.

COLORREF GetNearestColor(COLORREF crColor) const;

Parametreler

crColor
Eşleştirilecek rengi belirtir.

Dönüş Değeri

Cihazın gösterebileceği değere crColor en yakın düz rengi tanımlayan RGB (kırmızı, yeşil, mavi) renk değeri.

Açıklamalar

Verilen cihazın bu rengi temsil edebilmesi gerekir.

CDC::GetOutlineTextMetrics

TrueType yazı tipleri için ölçüm bilgilerini alır.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Parametreler

lpotm
Bir yapı dizisine OUTLINETEXTMETRIC işaret eder. Bu parametre ise NULLişlevi, alınan ölçüm verileri için gereken arabellek boyutunu döndürür.

cbData
Bilgilerin döndürüldiği arabelleğin boyutunu bayt cinsinden belirtir.

lpotm
Bir OUTLINETEXTMETRIC yapıyı gösterir. Bu parametre ise NULLişlevi, alınan ölçüm bilgileri için gereken arabellek boyutunu döndürür.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Yapı, OUTLINETEXTMETRIC truetype biçimiyle sağlanan yazı tipi ölçüm bilgilerinin çoğunu içerir ve bir TEXTMETRIC yapı içerir. Yapının son dört üyesi OUTLINETEXTMETRIC dize işaretçileridir. Uygulamalar, diğer üyeler için gereken alana ek olarak bu dizeler için alan ayırmalıdır. Dizelerin boyutu için sistem tarafından uygulanan bir sınır olmadığından, bellek ayırmanın en basit yöntemi, işlevine yapılan ilk çağrıda GetOutlineTextMetrics için lpotm NULL belirterek gerekli boyutu almaktır.

CDC::GetOutputCharWidth

çıkış cihazı bağlamını m_hDCkullanır ve geçerli yazı tipinden ardışık bir karakter grubundaki tek tek karakterlerin genişliklerini alır.

BOOL GetOutputCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

Parametreler

nFirstChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki ilk karakteri belirtir.

nLastChar
Geçerli yazı tipindeki ardışık bir karakter grubundaki son karakteri belirtir.

lpBuffer
Geçerli yazı tipindeki ardışık bir karakter grubunun genişlik değerlerini alacak arabelleğe işaret eder.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Örneğin, 'a' harfini ve nLastChar 'z' harfini tanımlarsa nFirstChar işlev tüm küçük harflerin genişliklerini alır.

işlevi tarafından işaret edilen lpBufferarabellekteki değerleri depolar. Bu arabellek tüm genişlikleri barındıracak kadar büyük olmalıdır; başka bir ifadeyle, verilen örnekte en az 26 giriş olmalıdır.

Ardışık karakter grubundaki bir karakter belirli bir yazı tipinde yoksa, varsayılan karakterin genişlik değeri atanır.

CDC::GetOutputTabbedTextExtent

Çıkış cihazı bağlamını kullanarak m_hDCbir karakter dizesinin genişliğini ve yüksekliğini hesaplamak için bu üye işlevini çağırın.

CSize GetOutputTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetOutputTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parametreler

lpszString
Ölçülecek karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.

nCount
tarafından lpszStringişaret edilen dizenin uzunluğunu belirtir.

nTabPositions
tarafından işaret edilen lpnTabStopPositionsdizideki sekme durağı konumlarının sayısını belirtir.

lpnTabStopPositions
Mantıksal birimlerdeki sekme durağı konumlarını içeren bir tamsayı dizisine işaret eder. Sekme durakları artan düzende sıralanmalıdır; en küçük x değeri dizideki ilk öğe olmalıdır. Geri sekmelerine izin verilmez.

str
CString Ölçülecek belirtilen karakterleri içeren bir nesne.

Dönüş Değeri

Nesnedeki dizenin boyutları (mantıksal birimlerde CSize ).

Açıklamalar

Dize bir veya daha fazla sekme karakteri içeriyorsa, dizenin genişliği tarafından lpnTabStopPositionsbelirtilen sekme duraklarını temel alır. İşlev, dizenin boyutlarını hesaplamak için seçili durumdaki yazı tipini kullanır.

Geçerli kırpma bölgesi, işlevin GetOutputTabbedTextExtent döndürdiği genişliği ve yüksekliği kaydırmıyor.

Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani karakterleri aralığına dahil ettiğinden), bir dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.

nTabPositions 0 ve lpnTabStopPositions iseNULL, sekmeler sekiz ortalama karakter genişliğine genişletilir. 1 ise nTabPositions , sekme durakları, dizinin işaret ettiği lpnTabStopPositions ilk değerle belirtilen uzaklık ile ayrılır. Tek bir değerden fazlasını gösterirse lpnTabStopPositions , dizideki her değer için tarafından nTabPositionsbelirtilen sayıya kadar bir sekme durağı ayarlanır.

CDC::GetOutputTextExtent

Çıkış cihazı bağlamını m_hDCkullanmak için bu üye işlevini çağırın ve geçerli yazı tipini kullanarak metin satırının genişliğini ve yüksekliğini hesaplayın.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Parametreler

lpszString
Bir karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.

nCount
tarafından lpszStringişaret edilen dizenin uzunluğunu belirtir.

str
CString Ölçülecek belirtilen karakterleri içeren bir nesne.

Dönüş Değeri

Dizenin boyutları (mantıksal birimlerde) bir CSize nesnede döndürülür.

Açıklamalar

Geçerli kırpma bölgesi tarafından GetOutputTextExtentdöndürülen genişliği ve yüksekliği etkilemez.

Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani, karakter aralığı gerçekleştirdiklerinden), dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.

CDC::GetOutputTextMetrics

çıkış cihazı bağlamını kullanarak m_hDCgeçerli yazı tipinin ölçümlerini alır.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parametreler

lpMetrics
TEXTMETRIC Ölçümleri alan yapıya işaret eder.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

CDC::GetPath

Cihaz bağlamında seçilen yolda bulunan çizgilerin uç noktalarını ve eğrilerin denetim noktalarını tanımlayan koordinatları alır.

int GetPath(
    LPPOINT lpPoints,
    LPBYTE lpTypes,
    int nCount) const;

Parametreler

lpPoints
Çizgi uç noktalarının ve eğri denetim noktalarının POINT yerleştirildiği bir veri yapıları veya CPoint nesneleri dizisine işaret eder.

lpTypes
Köşe türlerinin yerleştirildiği bayt dizisine işaret eder. Değerler aşağıdakilerden biridir:

  • PT_MOVETO içindeki ilgili noktanın lpPoints kopuk bir şekil başlattığını belirtir.

  • PT_LINETO önceki noktanın ve buna karşılık gelen noktanın lpPoints bir satırın uç noktaları olduğunu belirtir.

  • PT_BEZIERTO içindeki lpPoints ilgili noktanın Bzier eğrisi için bir denetim noktası veya bitiş noktası olduğunu belirtir.

PT_BEZIERTO türleri her zaman üç kümede gerçekleşir. Hemen önündeki yoldaki nokta, Bzier eğrisi için başlangıç noktasını tanımlar. İlk iki PT_BEZIERTO nokta denetim noktaları, üçüncü PT_BEZIERTO nokta ise bitiş noktasıdır (sabit kodlanmışsa).

Bir PT_LINETO veya PT_BEZIERTO türü, ilgili noktanın bir şekildeki son nokta olduğunu ve şeklin kapatılması gerektiğini belirtmek için aşağıdaki bayrakla (bit düzeyinde işleç VEYA kullanılarak) birleştirilebilir:

  • PT_CLOSEFIGURE İlgili çizgi veya eğri çizildikten sonra şeklin otomatik olarak kapatıldığını belirtir. Şekil, çizgi veya eğri uç noktasından son PT_MOVETOöğesine karşılık gelen noktaya bir çizgi çizilerek kapatılır.

nCount
Diziye yerleştirilebilen lpPoints veri yapılarının POINT toplam sayısını belirtir. Bu değer, diziye yerleştirilebilen bayt sayısıyla lpTypes aynı olmalıdır.

Dönüş Değeri

nCount Parametre sıfır değilse, numaralandırılmış nokta sayısı. 0 ise nCount , yoldaki toplam nokta sayısı (ve GetPath arabelleklere hiçbir şey yazmaz). Sıfır olmayan ve yoldaki nokta sayısından küçükse nCount , dönüş değeri -1 olur.

Açıklamalar

Cihaz bağlamı kapalı bir yol içermelidir. Yolun noktaları mantıksal koordinatlarda döndürülür. Noktalar yol içinde cihaz koordinatlarında depolanır, bu nedenle GetPath geçerli dönüşümün tersini kullanarak noktaları cihaz koordinatlarından mantıksal koordinatlara değiştirir. Yoldaki FlattenPath tüm eğrileri çizgi segmentlerine dönüştürmek için üye işlevinden önce GetPathçağrılabilir.

Örnek

örneğine CDC::BeginPathbakın.

CDC::GetPixel

ve *y* tarafından x belirtilen noktada pikselin RGB renk değerini alır.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Parametreler

x
İncelenecek noktanın mantıksal x koordinatını belirtir.

y
İncelenecek noktanın mantıksal y koordinatını belirtir.

point
İncelenecek noktanın mantıksal x ve y koordinatlarını belirtir.

Dönüş Değeri

İşlevin her iki sürümü için de verilen noktanın rengi için bir RGB renk değeri. Koordinatlar kırpma bölgesinde bir nokta belirtmiyorsa -1 olur.

Açıklamalar

Nokta kırpma bölgesinde olmalıdır. Nokta kırpma bölgesinde değilse işlevin etkisi olmaz ve -1 döndürür.

Tüm cihazlar işlevi desteklemez GetPixel . Daha fazla bilgi için üye işlevinin RC_BITBLT altındaki tarama özelliğine GetDeviceCaps bakın.

Üye işlevinin GetPixel iki biçimi vardır. birincisi iki koordinat değeri alır; ikincisi bir POINT yapı veya CPoint nesne alır.

CDC::GetPolyFillMode

Geçerli çokgen doldurma modunu alır.

int GetPolyFillMode() const;

Dönüş Değeri

İşlev başarılı olursa geçerli çokgen dolgulu mod ALTERNATE veya WINDING.

Açıklamalar

SetPolyFillMode Çokgen doldurma modlarının açıklaması için üye işlevine bakın.

CDC::GetROP2

Geçerli çizim modunu alır.

int GetROP2() const;

Dönüş Değeri

Çizim modu. Çizim modu değerlerinin listesi için üye işlevine SetROP2 bakın.

Açıklamalar

Çizim modu, kalemin renklerinin ve doldurulmuş nesnelerin iç kısmının zaten ekran yüzeyindeki renkle nasıl birleştirilme şeklini belirtir.

CDC::GetSafeHdc

çıkış cihazı bağlamını almak m_hDCiçin bu üye işlevini çağırın.

HDC GetSafeHdc() const;

Dönüş Değeri

Cihaz bağlam tutamacı.

Açıklamalar

Bu üye işlevi null işaretçilerle de çalışır.

CDC::GetStretchBltMode

Geçerli bit eşlem esnetme modunu alır.

int GetStretchBltMode() const;

Dönüş Değeri

dönüş değeri, işlev başarılı olursa geçerli bit eşlem genişletme modunu ( STRETCH_ANDSCANS, STRETCH_DELETESCANSveya STRETCH_ORSCANS ) belirtir.

Açıklamalar

Bit eşlem esnetme modu, üye işlevi tarafından StretchBlt esnetilen veya sıkıştırılan bit eşlemlerden bilgilerin nasıl kaldırıldığını tanımlar.

STRETCH_ANDSCANS ve STRETCH_ORSCANS modları genellikle ön plan piksellerini tek renkli bit eşlemlerde korumak için kullanılır. Mod STRETCH_DELETESCANS genellikle renk bit eşlemlerinde rengi korumak için kullanılır.

CDC::GetTabbedTextExtent

özniteliği cihaz bağlamını kullanarak m_hAttribDCbir karakter dizesinin genişliğini ve yüksekliğini hesaplamak için bu üye işlevini çağırın.

CSize GetTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parametreler

lpszString
Bir karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.

nCount
tarafından lpszStringişaret edilen dizenin uzunluğunu belirtir.

nTabPositions
tarafından işaret edilen lpnTabStopPositionsdizideki sekme durağı konumlarının sayısını belirtir.

lpnTabStopPositions
Mantıksal birimlerdeki sekme durağı konumlarını içeren bir tamsayı dizisine işaret eder. Sekme durakları artan düzende sıralanmalıdır; en küçük x değeri dizideki ilk öğe olmalıdır. Geri sekmelerine izin verilmez.

str
CString Çizilecek belirtilen karakterleri içeren bir nesne.

Dönüş Değeri

Nesnedeki dizenin boyutları (mantıksal birimlerde CSize ).

Açıklamalar

Dize bir veya daha fazla sekme karakteri içeriyorsa, dizenin genişliği tarafından lpnTabStopPositionsbelirtilen sekme duraklarını temel alır. İşlev, dizenin boyutlarını hesaplamak için seçili durumdaki yazı tipini kullanır.

Geçerli kırpma bölgesi, işlevin GetTabbedTextExtent döndürdiği genişliği ve yüksekliği kaydırmıyor.

Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani karakterleri aralığına dahil ettiğinden), bir dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.

nTabPositions 0 ve lpnTabStopPositions iseNULL, sekmeler ortalama karakter genişliğinin sekiz katına genişletilir. 1 ise nTabPositions , sekme durakları, dizinin işaret ettiği lpnTabStopPositions ilk değerle belirtilen uzaklık ile ayrılır. Tek bir değerden fazlasını gösterirse lpnTabStopPositions , dizideki her değer için tarafından nTabPositionsbelirtilen sayıya kadar bir sekme durağı ayarlanır.

CDC::GetTextAlign

Cihaz bağlamı için metin hizalama bayraklarının durumunu alır.

UINT GetTextAlign() const;

Dönüş Değeri

Metin hizalama bayraklarının durumu. Dönüş değeri aşağıdaki değerlerden biri veya daha fazlasıdır:

  • TA_BASELINE Sınırlayıcı dikdörtgen içinde x ekseninin hizalamasını ve seçilen yazı tipinin taban çizgisini belirtir.

  • TA_BOTTOM X ekseninin ve sınırlayıcı dikdörtgenin alt kısmının hizalamasını belirtir.

  • TA_CENTER Y ekseninin hizalamasını ve sınırlayıcı dikdörtgenin merkezini belirtir.

  • TA_LEFT Y ekseninin ve sınırlayıcı dikdörtgenin sol tarafının hizalamasını belirtir.

  • TA_NOUPDATECP Geçerli konumun güncelleştirilmediğini belirtir.

  • TA_RIGHT Y ekseninin hizalamasını ve sınırlayıcı dikdörtgenin sağ tarafını belirtir.

  • TA_TOP X ekseninin hizalamasını ve sınırlayıcı dikdörtgenin üst kısmını belirtir.

  • TA_UPDATECP Geçerli konumun güncelleştirildiğini belirtir.

Açıklamalar

Metin hizalama bayrakları, ve ExtTextOut üye işlevlerinin TextOut bir metin dizesini dizenin başlangıç noktasına göre nasıl hizaladığını belirler. Metin hizalama bayrakları tek bit bayrakları olmayabilir ve 0'a eşit olabilir. Bir bayrağın ayarlanıp ayarlanmadığını test etmek için bir uygulamanın şu adımları izlemesi gerekir:

  1. Bit düzeyinde OR (|) işlecini bayrağına ve ilgili bayraklarına aşağıdaki gibi gruplandırılmış şekilde uygulayın:

    • TA_LEFT, TA_CENTERve TA_RIGHT

    • TA_BASELINE, TA_BOTTOMve TA_TOP

    • TA_NOUPDATECP ve TA_UPDATECP

  2. C++ bit düzeyinde AND (&) işlecini sonucuna ve dönüş değerine GetTextAlignuygulayın.

  3. Bu sonucun ve bayrağının eşitliğini test edin.

CDC::GetTextCharacterExtra

Ara karakter aralığı miktarı için geçerli ayarı alır.

int GetTextCharacterExtra() const;

Dönüş Değeri

Ara karakter aralığı miktarı.

Açıklamalar

GDI, cihaz bağlamı için bir metin satırı yazdığında kesme karakterleri de dahil olmak üzere her karaktere bu aralığı ekler.

Ara karakter aralığı miktarı için varsayılan değer 0'dır.

CDC::GetTextColor

Geçerli metin rengini alır.

COLORREF GetTextColor() const;

Dönüş Değeri

RGB renk değeri olarak geçerli metin rengi.

Açıklamalar

Metin rengi, GDI metin çıkışı üye işlevleri TextOut, ExtTextOutve TabbedTextOutkullanılarak çizilen karakterlerin ön plan rengidir.

CDC::GetTextExtent

Boyutları belirlemek için geçerli yazı tipini kullanarak metin satırının genişliğini ve yüksekliğini hesaplamak için bu üye işlevini çağırın.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Parametreler

lpszString
Bir karakter dizesini gösterir. Bu parametre için bir CString nesne de geçirebilirsiniz.

nCount
Dizedeki karakter sayısını belirtir.

str
CString Belirtilen karakterleri içeren bir nesne.

Dönüş Değeri

Nesnedeki dizenin boyutları (mantıksal birimlerde CSize ).

Açıklamalar

Bilgiler, özniteliği cihaz bağlamından m_hAttribDCalınır.

Varsayılan olarak, GetTextExtent boyutunu aldığı metnin yatay bir çizgi boyunca ayarlandığını varsayar (yani, kaçış 0'dır). Sıfır olmayan bir kaçış noktası belirten bir yazı tipi oluşturursanız, dizenin boyutlarını almak için metnin açısını açıkça dönüştürmeniz gerekir.

Geçerli kırpma bölgesi tarafından GetTextExtentdöndürülen genişliği ve yüksekliği etkilemez.

Bazı cihazlar normal hücre dizilerine karakter yerleştirmediğinden (yani, karakter aralığı gerçekleştirdiklerinden), dizedeki karakterlerin kapsamlarının toplamı dizenin kapsamına eşit olmayabilir.

CDC::GetTextExtentExPointI

Belirtilen bir dizede belirtilen bir alana sığacak karakter sayısını alır ve bir diziyi bu karakterlerin her biri için metin kapsamıyla doldurur.

BOOL GetTextExtentExPointI(
    LPWORD pgiIn,
    int cgi,
    int nMaxExtent,
    LPINT lpnFit,
    LPINT alpDx,
    LPSIZE lpSize) const;

Parametreler

pgiIn
Kapsamların alınacağı bir glif dizin dizisi işaretçisi.

cgi
tarafından pgiInişaret edilen dizideki karakter sayısını belirtir.

nMaxExtent
Biçimlendirilmiş dizenin mantıksal birimlerde izin verilen en büyük genişliğini belirtir.

lpnFit
tarafından nMaxExtentbelirtilen alana sığacak karakter sayısı üst sınırını alan bir tamsayı işaretçisi. olduğunda lpnFit NULLnMaxExtent yoksayılır.

alpDx
Kısmi glif kapsamları alan bir tamsayı dizisi işaretçisi. Dizideki her öğe, karakter dizin dizisinin başlangıcı ile tarafından nMaxExtentbelirtilen alana uyan karakterlerden biri arasındaki uzaklığı mantıksal birimler halinde verir. Bu dizi, tarafından cgibelirtilen glif dizinleri kadar en az sayıda öğeye sahip olmalıdır, ancak işlevi tarafından belirtilen lpnFitsayıda glif dizini için yalnızca uzantılarla diziyi doldurur. ise lpnDx NULL, işlev kısmi dize genişliklerini hesaplamaz.

lpSize
Mantıksal birimlerde, glif dizinleri dizisinin boyutlarını alan bir SIZE yapıya yönelik işaretçi. Bu değer olamaz NULL.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetTextExtentExPointIişlevselliğine öykünmektedir.

CDC::GetTextExtentPointI

Belirtilen karakter dizin dizisinin genişliğini ve yüksekliğini alır.

BOOL GetTextExtentPointI(
    LPWORD pgiIn,
    int cgi,
    LPSIZE lpSize) const;

Parametreler

pgiIn
Kapsamların alınacağı bir glif dizin dizisi işaretçisi.

cgi
tarafından pgiInişaret edilen dizideki karakter sayısını belirtir.

lpSize
Mantıksal birimlerde, glif dizinleri dizisinin boyutlarını alan bir SIZE yapıya yönelik işaretçi. Bu değer olamaz NULL.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi işlevinin GetTextExtentPointIişlevselliğine öykünmektedir.

CDC::GetTextFace

Geçerli yazı tipinin yazı tipi adını arabelleğe kopyalamak için bu üye işlevini çağırın.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Parametreler

nCount
Arabelleğin boyutunu belirtir (bayt cinsinden). Yazı biçimi adı bu parametre tarafından belirtilen bayt sayısından uzunsa, ad kesilir.

lpszFacename
Yazı biçimi adının arabelleğine işaret etti.

rString
Bir nesneye CString başvuru.

Dönüş Değeri

Sonlandırıcı null karakter dahil olmak üzere arabelleğe kopyalanan bayt sayısı. Hata oluşursa 0 olur.

Açıklamalar

Yazı biçimi adı null olarak sonlandırılan bir dize olarak kopyalanır.

CDC::GetTextMetrics

Öznitelik cihaz bağlamını kullanarak geçerli yazı tipinin ölçümlerini alır.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parametreler

lpMetrics
TEXTMETRIC Ölçümleri alan yapıya işaret eder.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

CDC::GetViewportExt

Cihaz bağlamının görünüm penceresi x ve y uzantılarını alır.

CSize GetViewportExt() const;

Dönüş Değeri

Nesne olarak CSize x ve y-extents (cihaz birimlerinde).

CDC::GetViewportOrg

Cihaz bağlamıyla ilişkili görünüm penceresi kaynağının x ve y koordinatlarını alır.

CPoint GetViewportOrg() const;

Dönüş Değeri

Nesne olarak CPoint görünüm noktasının (cihaz koordinatlarında) kaynağı.

CDC::GetWindow

Görüntü cihazı bağlamıyla ilişkili pencereyi döndürür.

CWnd* GetWindow() const;

Dönüş Değeri

Başarılı olursa nesne CWnd işaretçisi; aksi takdirde NULL.

Açıklamalar

Bu gelişmiş bir işlevdir. Örneğin, bu üye işlevi yazdırırken veya baskı önizlemede görünüm penceresini döndürmeyebilir. Her zaman çıkışla ilişkilendirilmiş pencereyi döndürür. Verilen DC'yi kullanan çıkış işlevleri bu pencereye çizer.

CDC::GetWindowExt

Cihaz bağlamıyla ilişkili pencerenin x ve y uzantılarını alır.

CSize GetWindowExt() const;

Dönüş Değeri

Nesne olarak CSize x ve y kapsamları (mantıksal birimlerde).

CDC::GetWindowOrg

Cihaz bağlamıyla ilişkili pencerenin kaynağının x ve y koordinatlarını alır.

CPoint GetWindowOrg() const;

Dönüş Değeri

Pencerenin çıkış noktası (mantıksal koordinatlarda) bir CPoint nesne olarak.

CDC::GetWorldTransform

Geçerli dünya alanını sayfa alanı dönüşümüne alır.

BOOL GetWorldTransform(XFORM& rXform) const;

Parametreler

rXform
Geçerli dünya alanını sayfa alanına dönüştürmeyi alan bir XFORM yapıya başvuru.

Dönüş Değeri

Başarıda sıfır olmayan bir değer döndürür.

Hata durumunda 0 döndürür.

Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.

Açıklamalar

Bu yöntem, Windows GDI işlevini GetWorldTransformsarmalar.

CDC::GradientFill

Dikdörtgen ve üçgen yapıları bir taraftan diğerine düzgün bir şekilde beliren bir renkle doldurmak için bu üye işlevini çağırın.

BOOL GradientFill(
    TRIVERTEX* pVertices,
    ULONG nVertices,
    void* pMesh,
    ULONG nMeshElements,
    DWORD dwMode);

Parametreler

pVertices
Her biri TRIVERTEX üçgen köşe tanımlayan bir yapı dizisinin işaretçisi.

nVertices
Köşe sayısı.

pMesh
Üçgen modundaki yapıların GRADIENT_TRIANGLE dizisi veya dikdörtgen modundaki bir yapı dizisi GRADIENT_RECT .

nMeshElements
içindeki pMeshöğe sayısı (üçgenler veya dikdörtgenler).

dwMode
Gradyan dolgu modunu belirtir. Olası değerlerin listesi için Bkz GradientFill . Windows SDK'sı.

Dönüş Değeri

TRUE başarılı olursa; aksi takdirde FALSE.

Açıklamalar

Daha fazla bilgi için bkz GradientFill . Windows SDK'sı.

CDC::GrayString

Metni bir bellek bit eşlemine yazarak, bit eşlemi soluk hale getirmek ve ardından bit eşlemi ekrana kopyalayarak belirli bir konuma soluk (gri) metin çizer.

virtual BOOL GrayString(
    CBrush* pBrush,
    BOOL (CALLBACK* lpfnOutput)(
    HDC,
    LPARAM,
    int),
    LPARAM lpData,
    int nCount,
    int x,
    int y,
    int nWidth,
    int nHeight);

Parametreler

pBrush
Karartma (grileme) için kullanılacak fırçayı tanımlar.

lpfnOutput
Dizeyi çizecek uygulama tarafından sağlanan geri çağırma işlevinin yordam örneği adresini belirtir. Daha fazla bilgi için Windows OutputFunc geri çağırma işlevinin açıklamasına bakın. Bu parametre ise NULL, sistem dizeyi çizmek için Windows TextOut işlevini kullanır ve lpData çıkış yapılacak karakter dizesine uzun bir işaretçi olduğu varsayılır.

lpData
Çıkış işlevine geçirilecek verilerin uzak işaretçisini belirtir. ise lpfnOutput NULL, lpData çıkışının dizeye uzun bir işaretçi olması gerekir.

nCount
Çıkış yapılacak karakter sayısını belirtir. Bu parametre 0 ise, GrayString dizenin uzunluğunu hesaplar (bunun dizeye yönelik bir işaretçi olduğu lpData varsayılır). 1 ise ve işlevin işaret ettiği lpfnOutput işlev 0 döndürürsenCount, görüntü gösterilir ancak soluk değildir.

x
Dizeyi çevreleyen dikdörtgenin başlangıç konumunun mantıksal x koordinatını belirtir.

y
Dizeyi kapsayan dikdörtgenin başlangıç konumunun mantıksal y koordinatını belirtir.

nWidth
Dizeyi çevreleyen dikdörtgenin genişliğini (mantıksal birimlerde) belirtir. 0 ise nWidth , GrayString dizenin işaretçisi olduğunu varsayarak lpData alanın genişliğini hesaplar.

nHeight
Dizeyi çevreleyen dikdörtgenin yüksekliğini (mantıksal birimlerde) belirtir. 0 ise nHeight , GrayString dizenin işaretçisi olduğunu varsayarak lpData alanın yüksekliğini hesaplar.

Dönüş Değeri

Dize çizilirse sıfır olmayan veya işlev veya uygulama tarafından sağlanan çıkış işlevi 0 TextOut döndürdüyse veya soluklama için bellek bit eşlemi oluşturmak için yetersiz bellek varsa 0.

Açıklamalar

işlevi, seçili fırça ve arka plandan bağımsız olarak metni soluk görüntüler. GrayString Üye işlevi seçili durumdaki yazı tipini kullanır. Bu MM_TEXT işlev kullanmadan önce eşleme modu seçilmelidir.

Uygulama, üye işlevini çağırmadan GrayString düz gri rengi destekleyen cihazlarda soluk (gri) dizeler çizebilir. Sistem rengi COLOR_GRAYTEXT , devre dışı bırakılmış metin çizmek için kullanılan düz gri sistem rengidir. Uygulama, renk değerini COLOR_GRAYTEXTalmak için Windows işlevini çağırabilirGetSysColor. Renk 0 (siyah) dışındaysa, uygulama üye işlevini çağırarak SetTextColor metin rengini renk değerine ayarlayabilir ve ardından dizeyi doğrudan çizebilir. Alınan renk siyahsa, uygulamanın metni soluk (gri) olarak çağırması GrayString gerekir.

ise lpfnOutput NULL, GDI Windows TextOut işlevini kullanır ve lpData çıkış karakterine uzak bir işaretçi olduğu varsayılır. Çıkış yapılacak karakterler üye işlevi tarafından TextOut işlenemiyorsa (örneğin, dize bit eşlem olarak depolanır), uygulamanın kendi çıkış işlevini sağlaması gerekir.

Geri çağırma sınırları boyunca özel durumlar oluşturulamadığından, Windows'a dönmeden önce tüm geri çağırma işlevlerinin Microsoft Foundation özel durumlarını yakalaması gerekir. Özel durumlar hakkında daha fazla bilgi için Özel durumlar makalesine bakın.

öğesine geçirilen GrayString geri çağırma işlevinin __stdcall çağırma kuralını kullanması ve ile dışarı __declspecaktarılması gerekir.

Çerçeve önizleme modundayken üye işlevine yapılan GrayString çağrı bir TextOut çağrıya çevrilir ve geri çağırma işlevi çağrılmaz.

CDC::HIMETRICtoDP

Boyutları OLE'den piksele dönüştürürken HIMETRIC bu işlevi kullanın.

void HIMETRICtoDP(LPSIZE lpSize) const;

Parametreler

lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.

Açıklamalar

Cihaz bağlam nesnesinin MM_LOENGLISHeşleme modu , MM_HIENGLISHMM_LOMETRIC veya MM_HIMETRICise dönüştürme, fiziksel inçteki piksel sayısını temel alır. Eşleme modu diğer kısıtlanmamış modlardan biriyse (örneğin, MM_TEXT), dönüştürme işlemi mantıksal inçteki piksel sayısını temel alır.

CDC::HIMETRICtoLP

Birimleri mantıksal birimlere dönüştürmek HIMETRIC için bu işlevi çağır.

void HIMETRICtoLP(LPSIZE lpSize) const;

Parametreler

lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.

Açıklamalar

OLE'den boyut aldığınızda HIMETRIC ve bunları uygulamanızın doğal eşleme moduna dönüştürmek istediğinizde bu işlevi kullanın.

Dönüştürme, önce birimleri piksellere dönüştürerek HIMETRIC ve ardından cihaz bağlamı geçerli eşleme birimlerini kullanarak bu birimleri mantıksal birimlere dönüştürerek gerçekleştirilir. Cihaz penceresinin ve görünüm penceresinin boyutlarının sonucu etkileyeceğini unutmayın.

CDC::IntersectClipRect

Geçerli bölge ile , y1, x2ve y2tarafından x1belirtilen dikdörtgenin kesişimini oluşturarak yeni bir kırpma bölgesi oluşturur.

int IntersectClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int IntersectClipRect(LPCRECT lpRect);

Parametreler

x1
Dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y1
Dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.

x2
Dikdörtgenin sağ alt köşesinin mantıksal x koordinatını belirtir.

y2
Dikdörtgenin sağ alt köşesinin mantıksal y koordinatını belirtir.

lpRect
Dikdörtgeni belirtir. Bu parametrenin yapısına RECT bir CRect nesne veya işaretçi geçirebilirsiniz.

Dönüş Değeri

Yeni kırpma bölgesinin türü. Aşağıdaki değerlerden herhangi biri olabilir:

  • COMPLEXREGION Yeni kırpma bölgesinin kenarlıkları çakışıyor.

  • ERROR Cihaz bağlamı geçerli değil.

  • NULLREGION Yeni kırpma bölgesi boş.

  • SIMPLEREGION Yeni kırpma bölgesinde çakışan kenarlıklar yok.

Açıklamalar

GDI, sonraki tüm çıkışı yeni sınıra sığacak şekilde klipler. Genişlik ve yükseklik 32.767'yi aşmamalıdır.

CDC::InvertRect

Verilen dikdörtgenin içeriğini ters çevirir.

void InvertRect(LPCRECT lpRect);

Parametreler

lpRect
Ters çevrilecek dikdörtgenin mantıksal koordinatlarını içeren bir RECT öğesine işaret eder. Bu parametre için bir CRect nesne de geçirebilirsiniz.

Açıklamalar

Ters çevirme mantıksal bir DEĞİl işlemidir ve her pikselin bitlerini çevirir. Tek renkli ekranlarda, işlev beyaz pikselleri siyah ve siyah pikselleri beyaz yapar. Renkli ekranlarda, tersine çevirme, ekran için renklerin nasıl oluşturulduğuna bağlıdır. Aynı dikdörtgenle iki kez çağrılması InvertRect , görüntüyü önceki renklerine geri yükler.

Dikdörtgen boşsa hiçbir şey çizilir.

Örnek

void CDCView::DoInvertRect(CDC *pDC)
{
   // invert rect from 20,20 to 50,50
   CRect rect(20, 20, 50, 50);
   pDC->InvertRect(rect);

   // inverting again restores to normal
   ::Sleep(1000);
   pDC->InvertRect(rect);
}

CDC::InvertRgn

tarafından pRgnbelirtilen bölgedeki renkleri tersine çevirir.

BOOL InvertRgn(CRgn* pRgn);

Parametreler

pRgn
Ters çevrilecek bölgeyi tanımlar. Bölgenin koordinatları mantıksal birimlerde belirtilir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Tek renkli ekranlarda, işlev beyaz pikselleri siyah ve siyah pikselleri beyaz yapar. Renkli ekranlarda, tersine çevirme, renklerin ekran için nasıl oluşturulduğuna bağlıdır.

CDC::IsPrinting

Cihaz bağlamın yazdırma için kullanılıp kullanılmadığını belirler.

BOOL IsPrinting() const;

Dönüş Değeri

Nesne bir yazıcı DC'yse sıfır CDC olmayan; aksi takdirde 0.

CDC::LineTo

geçerli konumdan ve y (veyapoint) tarafından x belirtilen noktaya kadar bir çizgi çizer, ancak eklemez.

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Parametreler

x
Çizgi için uç noktanın mantıksal x koordinatını belirtir.

y
Çizgi için uç noktanın mantıksal y koordinatını belirtir.

point
Satırın uç noktasını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

Çizgi çizilirse sıfır olmayan; aksi takdirde 0.

Açıklamalar

Çizgi seçili kalemle çizilir. Geçerli konum olarak y pointveya olarak ayarlanırx.

Örnek

örneğine CRect::CenterPointbakın.

CDC::LPtoDP

Mantıksal birimleri cihaz birimlerine dönüştürür.

void LPtoDP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void LPtoDP(LPRECT lpRect) const;
void LPtoDP(LPSIZE lpSize) const;

Parametreler

lpPoints
Bir nokta dizisine işaret eder. Dizideki her nokta bir POINT yapı veya CPoint nesnedir.

nCount
Dizideki nokta sayısı.

lpRect
Bir RECT yapıyı veya CRect nesneyi gösterir. Bu parametre, mantıksal birimlerden cihaz birimlerine bir dikdörtgen eşlemenin yaygın durumu için kullanılır.

lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.

Açıklamalar

İşlev, GDI'nın mantıksal koordinat sisteminden her bir noktanın koordinatlarını veya bir boyutun boyutlarını bir cihaz koordinat sistemine eşler. Dönüştürme, geçerli eşleme moduna ve cihaz penceresinin ve görünüm penceresinin çıkış noktalarının ve kapsamlarının ayarlarına bağlıdır.

Noktaların x ve y koordinatları-32.768 ile 32.767 aralığındaki 2 bayt işaretli tamsayılardır. Eşleme modunun bu sınırlardan daha büyük değerlere neden olacağı durumlarda sistem, değerleri sırasıyla -32.768 ve 32.767 olarak ayarlar.

CDC::LPtoHIMETRIC

Mantıksal birimleri birimlere HIMETRIC dönüştürmek için bu işlevi çağır.

void LPtoHIMETRIC(LPSIZE lpSize) const;

Parametreler

lpSize
Bir SIZE yapıyı veya CSize nesneyi gösterir.

Açıklamalar

Uygulamanızın doğal eşleme modundan dönüştürerek OLE'ye boyut verdiğinizde HIMETRIC bu işlevi kullanın. Cihaz penceresinin ve görünüm penceresinin kapsamları sonucu etkiler.

Dönüştürme, önce cihaz bağlamı geçerli eşleme birimleri kullanılarak mantıksal birimleri piksellere dönüştürerek ve ardından bu birimleri birimlere HIMETRIC dönüştürerek gerçekleştirilir.

CDC::m_hAttribDC

Bu CDC nesne için öznitelik cihaz bağlamı.

HDC m_hAttribDC;

Açıklamalar

Varsayılan olarak, bu cihaz bağlamı değerine m_hDCeşittir. Genel olarak, CDC cihaz bağlamından bilgi isteyen GDI çağrıları adresine m_hAttribDCyönlendirilir. Bu iki cihaz bağlamının CDC kullanımı hakkında daha fazla bilgi için sınıf açıklamasına bakın.

CDC::m_hDC

Bu CDC nesne için çıkış cihazı bağlamı.

HDC m_hDC;

Açıklamalar

Varsayılan olarak, m_hDC tarafından sarmalanan CDCdiğer cihaz bağlamı olan öğesine eşittirm_hAttribDC. Genel olarak, CDC çıkış oluşturan GDI çağrıları cihaz bağlamlarına m_hDC gider. farklı cihazları başlatabilir m_hDC ve m_hAttribDC işaret edebilirsiniz. Bu iki cihaz bağlamının CDC kullanımı hakkında daha fazla bilgi için sınıf açıklamasına bakın.

CDC::MaskBlt

Verilen maske ve tarama işlemini kullanarak kaynak ve hedef bit eşlemler için renk verilerini birleştirir.

BOOL MaskBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    CBitmap& maskBitmap,
    int xMask,
    int yMask,
    DWORD dwRop);

Parametreler

x
Hedef dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y
Hedef dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.

nWidth
Hedef dikdörtgenin ve kaynak bit eşleminin genişliğini mantıksal birimler halinde belirtir.

nHeight
Hedef dikdörtgenin ve kaynak bit eşleminin yüksekliğini mantıksal birimler halinde belirtir.

pSrcDC
Bit eşlem kopyalanacak cihaz bağlamını tanımlar. Parametresi kaynak içermeyen bir raster işlemi belirtiyorsa dwRop sıfır olmalıdır.

xSrc
Kaynak bit eşleminin sol üst köşesinin mantıksal x koordinatını belirtir.

ySrc
Kaynak bit eşleminin sol üst köşesinin mantıksal y koordinatını belirtir.

maskBitmap
Kaynak cihaz bağlamındaki renk bit eşlemi ile birleştirilmiş tek renkli maske bit eşlemini tanımlar.

xMask
parametresi tarafından maskBitmap belirtilen maske bit eşlemi için yatay piksel uzaklığını belirtir.

yMask
parametresi tarafından maskBitmap belirtilen maske bit eşlemi için dikey piksel uzaklığını belirtir.

dwRop
İşlevin kaynak ve hedef verilerin birleşimini denetlemek için kullandığı ön plan ve arka plan üçüncül raster işlem kodlarını belirtir. Arka plan tarama işlemi kodu, bu değerin yüksek sözcüğünün yüksek baytında depolanır; ön plan raster işlem kodu, bu değerin yüksek sözcüğünün düşük baytında depolanır; bu değerin düşük sözcüğü yoksayılır ve sıfır olmalıdır. Makro MAKEROP4 , ön plan ve arka plan tarama işlem kodlarının bu tür birleşimlerini oluşturur. Bu işlev bağlamında ön plan ve arka plan tartışması için Açıklamalar bölümüne bakın. BitBlt Yaygın raster işlem kodlarının listesi için üye işlevine bakın.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

tarafından maskBitmap belirtilen maskede 1 değeri, tarafından dwRop belirtilen ön plan raster işlem kodunun o konuma uygulanması gerektiğini belirtir. Maskedeki 0 değeri, tarafından dwRop belirtilen arka plan tarama işlemi kodunun bu konuma uygulanması gerektiğini gösterir. Tarama işlemleri bir kaynak gerektiriyorsa, maske dikdörtgeni kaynak dikdörtgeni kapsamalıdır. Aksi takdirde işlev başarısız olur. Tarama işlemleri için kaynak gerekmiyorsa maske dikdörtgeninin hedef dikdörtgeni kaplaması gerekir. Aksi takdirde işlev başarısız olur.

Bu işlev çağrıldığında kaynak cihaz bağlamı için döndürme veya kesme dönüştürmesi etkinse bir hata oluşur. Ancak, diğer dönüştürme türlerine izin verilir.

Kaynak, desen ve hedef bit eşlemlerin renk biçimleri farklıysa, bu işlev deseni veya kaynak biçimini ya da her ikisini de hedef biçimle eşleşecek şekilde dönüştürür. Maske bit eşlemi tek renkli bit eşlem değilse bir hata oluşur. Gelişmiş meta dosyası kaydedilirken, kaynak cihaz bağlamı gelişmiş meta dosyası cihaz bağlamını tanımlarsa bir hata oluşur (ve işlev 0 döndürür). Tüm cihazlar 'i desteklemez MaskBlt. Bir cihazın bu işlevi destekleyip desteklemediğini belirlemek için bir uygulama çağırmalıdır GetDeviceCaps . Maske bit eşlemi sağlanmazsa, bu işlev ön plan raster işlem kodunu kullanarak tam olarak gibi BitBltdavranır. Piksel, maske bit eşlemindeki uzaklığı kaynak cihaz bağlamı bit eşlemindeki noktaya (0,0) kaydırıyor. Bu, bir maske bit eşleminin bir maske kümesi içerdiği durumlarda kullanışlıdır; bir uygulama, adresine gönderilen piksel uzaklıklarını ve dikdörtgen boyutlarını ayarlayarak bunlardan herhangi birini maske kesme görevine MaskBltkolayca uygulayabilir.

CDC::ModifyWorldTransform

Belirtilen modu kullanarak cihaz bağlamı için dünya dönüşümlerini değiştirir.

BOOL ModifyWorldTransform(
    const XFORM& rXform,
    DWORD iMode);

Parametreler

rXform
Verilen cihaz bağlamı için dünya dönüşümlerini değiştirmek için kullanılan bir XFORM yapıya başvuru.

iMode
Dönüştürme verilerinin geçerli dünya dönüşümünde nasıl değişiklik yapılacağını belirtir. Bu parametrenin alabildiği değerlerin listesi için bkz ModifyWorldTransform. .

Dönüş Değeri

Başarıda sıfır olmayan bir değer döndürür.

Hata durumunda 0 döndürür.

Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.

Açıklamalar

Bu yöntem, Windows GDI işlevini ModifyWorldTransformsarmalar.

CDC::MoveTo

Geçerli konumu ve y (veya pointtarafından) belirtilen x noktaya taşır.

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Parametreler

x
Yeni konumun mantıksal x koordinatını belirtir.

y
Yeni konumun mantıksal y koordinatını belirtir.

point
Yeni konumu belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

Nesne olarak CPoint önceki konumun x ve y koordinatları.

Örnek

örneğine CRect::CenterPointbakın.

CDC::OffsetClipRgn

Cihaz bağlamının kırpma bölgesini belirtilen uzaklıklara göre taşır.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Parametreler

x
Sola veya sağa taşınacak mantıksal birim sayısını belirtir.

y
Yukarı veya aşağı taşınacak mantıksal birim sayısını belirtir.

size
Kaydıracak miktarı belirtir.

Dönüş Değeri

Yeni bölgenin türü. Aşağıdaki değerlerden herhangi biri olabilir:

  • COMPLEXREGION Kırpma bölgesinin kenarlıkları çakışıyor.

  • ERROR Cihaz bağlamı geçerli değil.

  • NULLREGION Kırpma bölgesi boş.

  • SIMPLEREGION Kırpma bölgesinin kenarlıkları örtüşmemiştir.

Açıklamalar

işlevi, bölge x birimlerini x ekseni boyunca, birimleri ise y y ekseni boyunca taşır.

CDC::OffsetViewportOrg

Görünüm penceresi kaynağının koordinatlarını geçerli görünüm penceresi kaynağının koordinatlarına göre değiştirir.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Parametreler

nWidth
Geçerli kaynağın x koordinatlarına eklenecek cihaz birimi sayısını belirtir.

nHeight
Geçerli kaynağın y koordinatlarına eklenecek cihaz birimi sayısını belirtir.

Dönüş Değeri

Nesne olarak CPoint önceki görünüm penceresi kaynağı (cihaz koordinatlarında).

CDC::OffsetWindowOrg

Geçerli pencere kaynağının koordinatlarına göre pencere kaynağının koordinatlarını değiştirir.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Parametreler

nWidth
Geçerli kaynağın x koordinatlarına eklenecek mantıksal birim sayısını belirtir.

nHeight
Geçerli kaynağın y koordinatlarına eklenecek mantıksal birim sayısını belirtir.

Dönüş Değeri

Nesne olarak CPoint önceki pencere başlangıcı (mantıksal koordinatlarda).

CDC::operator HDC

Nesnenin cihaz bağlam tutamacını CDC almak için bu işleci kullanın.

operator HDC() const;

Dönüş Değeri

Başarılı olursa, cihaz bağlam nesnesinin tanıtıcısı; aksi takdirde , NULL.

Açıklamalar

Windows API'lerini doğrudan çağırmak için tutamacı kullanabilirsiniz.

CDC::PaintRgn

Geçerli fırçayı kullanarak belirtilen pRgn bölgeyi doldurur.

BOOL PaintRgn(CRgn* pRgn);

Parametreler

pRgn
Doldurulacak bölgeyi tanımlar. Belirtilen bölgenin koordinatları mantıksal birimlerde belirtilir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

CDC::PatBlt

Cihazda bir bit deseni oluşturur.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

Parametreler

x
Deseni almak için dikdörtgenin sol üst köşesinin mantıksal x koordinatını belirtir.

y
Deseni almak için dikdörtgenin sol üst köşesinin mantıksal y koordinatını belirtir.

nWidth
Deseni alacak dikdörtgenin genişliğini (mantıksal birimlerde) belirtir.

nHeight
Deseni alacak dikdörtgenin yüksekliğini (mantıksal birimlerde) belirtir.

dwRop
raster-operation kodunu belirtir. Raster-operation codes (ROPs), GDI'nin geçerli fırça, olası bir kaynak bit eşlem ve hedef bit eşlem içeren çıkış işlemlerinde renkleri nasıl birleştirdiğini tanımlar. Bu parametre aşağıdaki değerlerden biri olabilir:

  • PATCOPY Deseni hedef bit eşlem'e kopyalar.

  • PATINVERTBoole XOR (^) işlecini kullanarak hedef bit eşlemini desenle birleştirir.

  • DSTINVERT Hedef bit eşlemi tersine çevirir.

  • BLACKNESS Tüm çıkışı siyaha çevirir.

  • WHITENESS Tüm çıkışı beyaza çevirir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Desen, seçili fırçanın ve cihazda zaten bulunan desenin bir bileşimidir. tarafından dwRop belirtilen raster-operation kodu, desenlerin nasıl birleştirileceği tanımlar. Bu işlev için listelenen raster işlemleri, tam 256 üçüncül raster-operation kodunun sınırlı bir alt kümesidir; özellikle bir kaynağa başvuran bir raster-operation kodu kullanılamaz.

Tüm cihaz bağlamları işlevi desteklemez PatBlt . Bir cihaz bağlamı GetDeviceCaps tarafından desteklenip desteklenmediğini PatBltbelirlemek için, üye işlevini dizinle birlikte çağırın RASTERCAPS ve bayrağının RC_BITBLT dönüş değerini denetleyin.

CDC::Pie

Merkezi ve iki uç noktası çizgilerle birleştirilen eliptik bir yay çizerek pasta şeklinde bir kama çizer.

BOOL Pie(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Pie(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parametreler

x1
Sınırlayıcı dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).

y1
Sınırlayıcı dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).

x2
Sınırlayıcı dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).

y2
Sınırlayıcı dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).

x3
Yay başlangıç noktasının x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

y3
Yay başlangıç noktasının y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

x4
Ark uç noktasının x koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

y4
Ark uç noktasının y koordinatını belirtir (mantıksal birimlerde). Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok.

lpRect
Sınırlayıcı dikdörtgeni belirtir. Bu parametrenin yapısına RECT bir CRect nesne veya işaretçi geçirebilirsiniz.

ptStart
Yayının başlangıç noktasını belirtir. Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

ptEnd
Yay uç noktasını belirtir. Bu noktanın yay üzerinde tam olarak yalan söylemesine gerek yok. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Yay merkezi, x2y1ve y2 (veya lpRecttarafından) tarafından x1belirtilen sınırlayıcı dikdörtgenin merkezidir. Yayının başlangıç ve bitiş noktaları , , x4y3ve y4 (veya ve ptEnd) ile x3ptStart belirtilir.

Yay, saat yönünün tersine hareket eden seçili kalemle çizilir. Her uç noktadan yay merkezine iki çizgi daha çizilir. Pasta şeklindeki alan geçerli fırça ile doldurulur. eşittir x4 ve eşitse x3 y4, sonuç üç noktanın ortasından nokta (, ) veya (x4x3, y4y3) öğesine tek bir çizgi içeren bir üç noktadıry3.

Bu işlev tarafından çizilen şekil yukarı doğru uzanır ancak sağ ve alt koordinatları içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir. Sınırlayıcı dikdörtgenin hem genişliği hem de yüksekliği 2 birimden büyük ve 32.767 birimden az olmalıdır.

Örnek

void CDCView::DrawPie(CDC *pDC)
{
   // Fill the client area with a simple pie chart. A
   // big blue slice covers 75% of the pie, from
   // 6 o'clock to 3 o'clock. This portion is filled
   // with blue and has a blue edge. The remaining 25%
   // is filled with a red, diagonal hatch and has
   // a red edge.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.

   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Pie(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter slice from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen with
   // the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Same parameters, but reverse start and end points.
   pDC->Pie(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::PlayMetaFile

Belirtilen meta dosyasının içeriğini cihaz bağlamında çalar.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Parametreler

hMF
Oynatılacak meta dosyasını tanımlar.

hEnhMetaFile
Gelişmiş meta dosyasını tanımlar.

lpBounds
Resmi görüntülemek için kullanılan sınırlayıcı dikdörtgenin koordinatlarını içeren bir RECT CRect yapıyı veya nesneyi gösterir. Koordinatlar mantıksal birimlerde belirtilir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Meta dosyası istediğiniz sayıda oynatılabilir.

İkinci sürümü PlayMetaFile , verilen gelişmiş biçimli meta dosyasında depolanan resmi görüntüler. Bir uygulama ikinci sürümünü PlayMetaFileçağırdığında Windows, gelişmiş meta dosyası üst bilgisindeki resim çerçevesini kullanarak resmi lpBounds parametresinin işaret ettiği dikdörtgene eşler . (Bu resim, çağırmadan PlayMetaFileönce çıkış cihazında dünya dönüşümü ayarlanarak yamlanabilir veya döndürülebilir.) Dikdörtgenin kenarlarındaki noktalar resme eklenir. Gelişmiş meta dosyası resmi, gelişmiş meta dosyasını yürütmeden önce çıkış cihazında kırpma bölgesi tanımlanarak kırpılabilir.

Gelişmiş meta dosyası isteğe bağlı bir palet içeriyorsa, bir uygulama ikinci sürümünü PlayMetaFileçağırmadan önce çıkış cihazında bir renk paleti ayarlayarak tutarlı renkler elde edebilir. İsteğe bağlı paleti almak için Windows işlevini kullanın GetEnhMetaFilePaletteEntries . Gelişmiş meta dosyası, yeni geliştirilmiş meta dosyası için ikinci sürümü PlayMetaFile çağrılarak ve kaynak gelişmiş meta dosyası cihaz bağlamında yürütülerek yeni oluşturulan gelişmiş meta dosyaya eklenebilir.

Çıkış cihazı bağlamının durumları bu işlev tarafından korunur. Geliştirilmiş meta dosyasında oluşturulan ancak silinmeyen tüm nesneler bu işlev tarafından silinir. Bir uygulama bu işlevi durdurmak için windows işlevini başka bir iş parçacığından çağırarak CancelDC işlemi sonlandırabilir. Bu durumda işlev sıfır döndürür.

CDC::PlgBlt

Kaynak cihaz bağlamında belirtilen dikdörtgenden verilen cihaz bağlamındaki belirtilen paralelograma renk verisi bitlerinin bit blok aktarımını gerçekleştirir.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Parametreler

lpPoint
Hedef paralelkenarının üç köşesini tanımlayan mantıksal alanda üç noktadan oluşan bir diziye işaret eder. Kaynak dikdörtgenin sol üst köşesi bu dizinin ilk noktasına, sağ üst köşesi bu dizinin ikinci noktasına ve sol alt köşeden üçüncü noktaya eşlenir. Kaynak dikdörtgenin sağ alt köşesi paralelkenardaki örtük dördüncü noktaya eşlenir.

pSrcDC
Kaynak cihaz bağlamını tanımlar.

xSrc
Kaynak dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.

ySrc
Kaynak dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.

nWidth
Kaynak dikdörtgenin genişliğini mantıksal birimler halinde belirtir.

nHeight
Kaynak dikdörtgenin yüksekliğini mantıksal birimler halinde belirtir.

maskBitmap
Kaynak dikdörtgenin renklerini maskelerken kullanılan isteğe bağlı bir tek renkli bit eşlem tanımlar.

xMask
Tek renkli bit eşleminin sol üst köşesinin x koordinatını belirtir.

yMask
Tek renkli bit eşleminin sol üst köşesinin y koordinatını belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Verilen bit maskesi tutamacı geçerli bir tek renkli bit eşlem tanımlarsa, işlev kaynak dikdörtgendeki renk verisi bitlerini maske etmek için bu bit eşlemi kullanır.

Paralelogramın dördüncü köşesi (D), ilk üç noktanın (A, B ve C) vektör olarak ele alınması ve D = B + C - A hesaplaması ile tanımlanır.

Bit maskesi varsa, maskedeki 1 değeri kaynak piksel renginin hedefe kopyalanması gerektiğini gösterir. Maskedeki 0 değeri, hedef piksel renginin değiştirilmediğini gösterir.

Maske dikdörtgeni kaynak ve hedef dikdörtgenlerden daha küçükse, işlev maske desenini çoğaltır.

Kaynak cihaz bağlamında ölçeklendirme, çeviri ve yansıma dönüştürmelerine izin verilir; ancak döndürme ve kesme dönüştürmeleri değildir. Maske bit eşlemi tek renkli bit eşlem değilse bir hata oluşur. Hedef cihaz bağlamı için esnetme modu, gerekirse piksellerin nasıl genişletileceğini veya sıkıştırıldığını belirlemek için kullanılır. Gelişmiş meta dosyası kaydedilirken, kaynak cihaz bağlamı gelişmiş meta dosyası cihaz bağlamını tanımlarsa bir hata oluşur.

Hedef koordinatları hedef cihaz bağlamına göre dönüştürülür; kaynak koordinatları kaynak cihaz bağlamına göre dönüştürülür. Kaynak dönüştürmenin döndürme veya kesme işlemi varsa bir hata döndürülür. Hedef ve kaynak dikdörtgenler aynı renk biçimine sahip değilse, PlgBlt kaynak dikdörtgeni hedef dikdörtgenle eşleşecek şekilde dönüştürür. Tüm cihazlar 'i desteklemez PlgBlt. Daha fazla bilgi için üye işlevindeki RC_BITBLT raster özelliğinin açıklamasına CDC::GetDeviceCaps bakın.

Kaynak ve hedef cihaz bağlamları uyumsuz cihazları temsil ederse bir PlgBlt hata döndürür.

CDC::PolyBezier

Bir veya daha fazla Bzier eğrisi çizer.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Parametreler

lpPoints
Spline'ların POINT uç noktalarını ve denetim noktalarını içeren bir veri yapıları dizisine işaret eder.

nCount
Dizideki lpPoints nokta sayısını belirtir. Her Bzier spline iki denetim noktası ve bir uç nokta gerektirdiğinden ve ilk spline başka bir başlangıç noktası gerektirdiğinden, bu değer çizilecek eğri sayısının üç katı olmalıdır.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu işlev, parametresi tarafından belirtilen uç noktaları ve denetim noktalarını kullanarak Bzier splines küplerini lpPoints çizer. İlk spline, ikinci ve üçüncü noktalar denetim noktası olarak kullanılarak birinci noktadan dördüncü noktaya çekilir. Dizideki sonraki her spline tam olarak üç noktaya daha ihtiyaç duyar: başlangıç noktası olarak önceki eğrinin bitiş noktası kullanılır, dizideki sonraki iki nokta denetim noktalarıdır ve üçüncüsü bitiş noktasıdır.

Geçerli konum işlev tarafından PolyBezier kullanılmaz veya güncelleştirilmez. Şekil doldurulmuyor. Bu işlev geçerli kalemi kullanarak çizgileri çizer.

CDC::PolyBezierTo

Bir veya daha fazla Bzier eğrisi çizer.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Parametreler

lpPoints
Uç noktaları ve denetim noktalarını içeren bir veri yapıları dizisine POINT işaret eder.

nCount
Dizideki lpPoints nokta sayısını belirtir. Her Bzier spline için iki denetim noktası ve bir bitiş noktası gerektiğinden, bu değer çizilecek eğri sayısının üç katı olmalıdır.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu işlev, parametresi tarafından lpPoints belirtilen denetim noktalarını kullanarak Bzier kübik splines çizer. İlk eğri geçerli konumdan üçüncü noktaya doğru ilk iki nokta denetim noktası olarak kullanılarak çizilir. Sonraki her spline için işlevin tam olarak üç noktaya daha ihtiyacı vardır ve sonrakinin başlangıç noktası olarak önceki eğrinin bitiş noktasını kullanır. PolyBezierTo geçerli konumu son Bzier eğrisinin bitiş noktasına taşır. Şekil doldurulmuyor. Bu işlev geçerli kalemi kullanarak çizgileri çizer.

Örnek

örneğine CDC::BeginPathbakın.

CDC::PolyDraw

Bir dizi çizgi kesimi ve Bzier eğrisi çizer.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Parametreler

lpPoints
Her bir satır kesimi için POINT uç noktaları ve her Bzier spline için uç noktaları ve denetim noktalarını içeren bir veri yapıları dizisine işaret eder.

lpTypes
Dizideki her bir noktanın nasıl kullanıldığını belirten bir diziye lpPoints işaret eder. Değerler aşağıdakilerden biri olabilir:

  • PT_MOVETO Bu noktanın ayrık bir şekil başlattığını belirtir. Bu nokta yeni geçerli konum olur.

  • PT_LINETO Bir çizginin geçerli konumdan bu noktaya doğru çekilip yeni geçerli konum haline geldiğini belirtir.

  • PT_BEZIERTO Bu noktanın Bzier spline için bir denetim noktası veya bitiş noktası olduğunu belirtir.

PT_BEZIERTO türleri her zaman üç kümede gerçekleşir. Geçerli konum, Bzier spline için başlangıç noktasını tanımlar. İlk iki PT_BEZIERTO nokta denetim noktaları, üçüncü PT_BEZIERTO nokta ise bitiş noktasıdır. Bitiş noktası yeni geçerli konum olur. Ardışık PT_BEZIERTO üç nokta yoksa bir hata sonucu oluşur.

Bir PT_LINETO veya PT_BEZIERTO türü, bit düzeyinde işleç kullanılarak veya ilgili noktanın şekildeki son nokta olduğunu ve şeklin kapatıldığını belirtmek için aşağıdaki sabitle birleştirilebilir:

  • PT_CLOSEFIGUREBu nokta için veya PT_BEZIERTO türü tamamlandıktan sonra şeklin PT_LINETO otomatik olarak kapatıldığını belirtir. Bu noktadan en son PT_MOVETO noktaya veya MoveTo noktaya bir çizgi çizilir.

    Bu bayrak, bit düzeyinde OR işleci kullanılarak bir çizginin türüyle veya Bzier spline'ın bitiş noktası türüyle PT_BEZIERTO birleştirilirPT_LINETO. Geçerli konum, kapanış satırının bitiş noktasına ayarlanır.

nCount
Dizideki toplam nokta sayısını, dizideki lpPoints bayt lpTypes sayısıyla aynı şekilde belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu işlev, CDC::LineTove CDC::PolyBezierTo üye işlevlerine ardışık çağrılar yerine kopuk şekiller çizmek için CDC::MoveTokullanılabilir. Çizgiler ve spline'lar geçerli kalem kullanılarak çizilir ve şekiller doldurulmuyor. Üye işlevi çağrılarak CDC::BeginPath başlatılan etkin bir yol varsa, PolyDraw yola ekler. dizisinde ve içinde lpTypes yer alan noktalar, her noktanın lpPoints bir CDC::MoveTo, CDC::LineToveya CDC::BezierTo işleminin parçası olup olmadığını gösterir. Rakamları kapatmak da mümkündür. Bu işlev geçerli konumu güncelleştirir.

Örnek

örneğine CDC::BeginPathbakın.

CDC::Polygon

Geçerli kalemi kullanarak çizgilere bağlı iki veya daha fazla noktadan (köşe) oluşan bir çokgen çizer.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Parametreler

lpPoints
Çokgenin köşelerini belirten bir nokta dizisine işaret eder. Dizideki her nokta bir POINT yapı veya CPoint nesnedir.

nCount
Dizideki köşe sayısını belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Sistem, gerekirse son köşeden ilk köşeye bir çizgi çizerek çokgeni otomatik olarak kapatır.

Geçerli çokgen doldurma modu ve SetPolyFillMode üye işlevleri kullanılarak GetPolyFillMode alınabilir veya ayarlanabilir.

Örnek

void CDCView::DrawPolygon(CDC *pDC)
{
   // find the client area
   CRect rect;
   GetClientRect(rect);

   // draw with a thick blue pen
   CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
   CPen *pOldPen = pDC->SelectObject(&penBlue);

   // and a solid red brush
   CBrush brushRed(RGB(255, 0, 0));
   CBrush *pOldBrush = pDC->SelectObject(&brushRed);

   // Find the midpoints of the top, right, left, and bottom
   // of the client area. They will be the vertices of our polygon.
   CPoint pts[4];
   pts[0].x = rect.left + rect.Width() / 2;
   pts[0].y = rect.top;

   pts[1].x = rect.right;
   pts[1].y = rect.top + rect.Height() / 2;

   pts[2].x = pts[0].x;
   pts[2].y = rect.bottom;

   pts[3].x = rect.left;
   pts[3].y = pts[1].y;

   // Calling Polygon() on that array will draw three lines
   // between the points, as well as an additional line to
   // close the shape--from the last point to the first point
   // we specified.
   pDC->Polygon(pts, 4);

   // Put back the old objects.
   pDC->SelectObject(pOldPen);
   pDC->SelectObject(pOldBrush);
}

CDC::Polyline

tarafından lpPointsbelirtilen noktaları bağlayan bir çizgi kesim kümesi çizer.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Parametreler

lpPoints
Bağlanacak bir yapı veya CPoint nesne dizisine POINT işaret eder.

nCount`
Dizideki nokta sayısını belirtir. Bu değer en az 2 olmalıdır.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Çizgiler, geçerli kalem kullanılarak ilk noktadan sonraki noktalara doğru çizilir. Üye işlevinin LineTo Polyline aksine işlev geçerli konumu kullanmaz veya güncelleştirmez.

Daha fazla bilgi için bkz PolyLine . Windows SDK'sı.

CDC::PolylineTo

Bir veya daha fazla düz çizgi çizer.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Parametreler

lpPoints
Çizginin POINT köşelerini içeren bir veri yapıları dizisine işaret eder.

nCount
Dizideki nokta sayısını belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Geçerli kalem kullanılarak geçerli konumdan parametresi tarafından lpPoints belirtilen ilk noktaya bir çizgi çizilir. Her ek çizgi için işlev, önceki satırın bitiş noktasından tarafından lpPointsbelirtilen bir sonraki noktaya doğru çizer. PolylineTo geçerli konumu son satırın bitiş noktasına taşır. Bu işlev tarafından çizilen çizgi kesimleri kapalı bir şekil oluşturuyorsa, şekil doldurulmuyor.

CDC::PolyPolygon

Geçerli çokgen doldurma modu kullanılarak doldurulan iki veya daha fazla çokgen oluşturur.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Parametreler

lpPoints
Çokgenlerin POINT köşelerini tanımlayan bir yapı veya CPoint nesne dizisine işaret eder.

lpPolyCounts
Her biri dizideki çokgenlerden birindeki nokta sayısını belirten bir tamsayı dizisine lpPoints işaret eder.

nCount
Dizideki lpPolyCounts girdilerin sayısı. Bu sayı, çizilecek çokgen sayısını belirtir. Bu değer en az 2 olmalıdır.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Çokgenler kopuk veya örtüşüyor olabilir.

İşlev çağrısında PolyPolygon belirtilen her çokgen kapatılmalıdır. Üye işlevi tarafından Polygon oluşturulan çokgenlerin aksine, tarafından PolyPolygon oluşturulan çokgenler otomatik olarak kapatılamaz.

işlevi iki veya daha fazla çokgen oluşturur. Tek bir çokgen oluşturmak için bir uygulamanın üye işlevini kullanması Polygon gerekir.

Geçerli çokgen doldurma modu ve SetPolyFillMode üye işlevleri kullanılarak GetPolyFillMode alınabilir veya ayarlanabilir.

CDC::PolyPolyline

Birden çok bağlı çizgi kesimi serisi çizer.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Parametreler

lpPoints
Çoklu çizgilerin köşelerini içeren bir yapı dizisine işaret eder. Çoklu çizgiler art arda belirtilir.

lpPolyPoints
Karşılık gelen çokgen için dizideki lpPoints nokta sayısını belirten bir değişken dizisine işaret eder. Her girdi 2'den büyük veya buna eşit olmalıdır.

nCount
Dizideki toplam sayı lpPolyPoints sayısını belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Çizgi kesimleri geçerli kalem kullanılarak çizilir. Segmentler tarafından oluşturulan şekiller doldurulmuyor. Geçerli konum bu işlev tarafından kullanılmaz veya güncelleştirilmez.

CDC::PtVisible

Verilen noktanın cihaz bağlamının kırpma bölgesi içinde olup olmadığını belirler.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Parametreler

x
Noktanın mantıksal x koordinatını belirtir.

y
Noktanın mantıksal y koordinatını belirtir.

point
Mantıksal koordinatları iade etmek için noktayı belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

Belirtilen nokta kırpma bölgesi içindeyse sıfır olmayan; aksi takdirde 0.

CDC::QueryAbort

Bir yazdırma uygulaması için üye işlevi tarafından SetAbortProc yüklenen abort işlevini çağırır ve yazdırmanın sonlandırılıp sonlandırılmayacağını sorgular.

BOOL QueryAbort() const;

Dönüş Değeri

Yazdırmanın devam etmesi gerekiyorsa veya iptal yordamı yoksa, dönüş değeri sıfır değildir. Yazdırma işinin sonlandırılması gerekiyorsa 0 olur. Dönüş değeri abort işlevi tarafından sağlanır.

CDC::RealizePalette

Geçerli mantıksal paletdeki girdileri sistem paletine eşler.

UINT RealizePalette();

Dönüş Değeri

Mantıksal paletteki kaç girişin sistem paletindeki farklı girişlerle eşlendiğini gösterir. Bu, mantıksal paletin son gerçekleştirildiğinden bu yana sistem paletindeki değişiklikleri karşılamak için bu işlevin yeniden eşlendiği girdi sayısını temsil eder.

Açıklamalar

Mantıksal renk paleti, yoğun renk kullanan uygulamalarla sistem arasında arabellek görevi görerek bir uygulamanın kendi görüntülenen renklerini engellemeden veya diğer pencereler tarafından görüntülenen renklerle gerektiği kadar renk kullanmasını sağlar.

Bir pencere giriş odağına sahip olduğunda ve çağırdığında RealizePaletteWindows, pencerenin ekranda aynı anda kullanılabilen maksimum sayıya kadar istenen tüm renkleri görüntülemesini sağlar. Windows ayrıca pencerenin paletinde bulunmayan renkleri kullanılabilir renklerle eşleştirerek görüntüler.

Buna ek olarak, Windows etkin olmayan pencereler tarafından istenen ve işlevi mümkün olduğunca yakın olarak çağıran renklerle kullanılabilir renklerle eşleşir. Bu, etkin olmayan pencerelerde görüntülenen renklerde istenmeyen değişiklikleri önemli ölçüde azaltır.

CDC::Rectangle

Geçerli kalemi kullanarak bir dikdörtgen çizer.

BOOL Rectangle(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Rectangle(LPCRECT lpRect);

Parametreler

x1
Dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).

y1
Dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).

x2
Dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).

y2
Dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).

lpRect
Dikdörtgeni mantıksal birimler halinde belirtir. Bu parametrenin yapısına RECT bir CRect nesne veya işaretçi geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Dikdörtgenin iç kısmı geçerli fırça kullanılarak doldurulur.

Dikdörtgen, sağ ve alt koordinatlara kadar uzanır ancak bu koordinatları içermez. Bu, dikdörtgenin yüksekliğinin ve dikdörtgenin y2 - y1 genişliğinin olduğu x2 - x1anlamına gelir. Dikdörtgenin hem genişliği hem de yüksekliği 2 birimden büyük ve 32.767 birimden az olmalıdır.

Örnek

void CDCView::DrawRectangle(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // draw a thick black rectangle filled with blue
   pDC->Rectangle(rect);

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::RectVisible

Verilen dikdörtgenin herhangi bir bölümünün görüntü bağlamının kırpma bölgesinde olup olmadığını belirler.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Parametreler

lpRect
Belirtilen dikdörtgenin mantıksal koordinatlarını içeren bir RECT CRect yapıya veya nesneye işaret eder.

Dönüş Değeri

Verilen dikdörtgenin herhangi bir bölümü kırpma bölgesinde yer alırsa sıfır olmayan; aksi takdirde 0.

CDC::ReleaseAttribDC

NULL olarak ayarlamak m_hAttribDC için bu üye işlevini çağır.

virtual void ReleaseAttribDC();

Açıklamalar

Bu, bir Detach oluşmasına neden olmaz. Nesneye CDC yalnızca çıkış cihazı bağlamı eklenir ve yalnızca çıkarılabilir.

CDC::ReleaseOutputDC

Üyeyi olarak ayarlamak için bu üye NULLişlevini çağırınm_hDC.

virtual void ReleaseOutputDC();

Açıklamalar

Çıkış cihazı bağlamı nesneye CDC eklendiğinde bu üye işlevi çağrılamaz. Çıkış cihazı bağlamını Detach ayırmak için üye işlevini kullanın.

CDC::ResetDC

Nesnesi tarafından sarmalanan cihaz bağlamını güncelleştirmek için bu üye işlevini çağırın CDC .

BOOL ResetDC(const DEVMODE* lpDevMode);

Parametreler

lpDevMode
Windows DEVMODE yapısının işaretçisi.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Cihaz bağlamı, Windows DEVMODE yapısında belirtilen bilgilerden güncelleştirilir. Bu üye işlevi yalnızca öznitelik cihaz bağlamını sıfırlar.

Bir pencere bir iletiyi işlediğinde ResetDC WM_DEVMODECHANGE uygulama genellikle üye işlevini kullanır. Belgeyi yazdırırken kağıt yönünü veya kağıt bölmelerini değiştirmek için de bu üye işlevini kullanabilirsiniz.

Sürücü adını, cihaz adını veya çıkış bağlantı noktasını değiştirmek için bu üye işlevini kullanamazsınız. Kullanıcı bağlantı noktası bağlantısını veya cihaz adını değiştirdiğinde, özgün cihaz bağlamını silmeniz ve yeni bilgilerle yeni bir cihaz bağlamı oluşturmanız gerekir.

Bu üye işlevini çağırmadan önce, cihaz bağlamında seçilen tüm nesnelerin (stok nesneleri dışında) seçili olduğundan emin olmanız gerekir.

CDC::RestoreDC

Cihaz bağlamını tarafından nSavedDCtanımlanan önceki duruma geri yükler.

virtual BOOL RestoreDC(int nSavedDC);

Parametreler

nSavedDC
Geri yüklenecek cihaz bağlamını belirtir. Önceki SaveDC işlev çağrısı tarafından döndürülen bir değer olabilir. -1 ise nSavedDC , en son kaydedilen cihaz bağlamı geri yüklenir.

Dönüş Değeri

Belirtilen bağlam geri yüklendiyse sıfır olmayan; aksi takdirde 0.

Açıklamalar

RestoreDC üye işlevine yapılan önceki çağrılar tarafından oluşturulan bir yığında durum bilgilerini çıkararak cihaz bağlamını SaveDC geri yükler.

Yığın, birkaç cihaz bağlamı için durum bilgilerini içerebilir. tarafından nSavedDC belirtilen bağlam yığının en üstünde değilse, RestoreDC tarafından belirtilen nSavedDC cihaz bağlamı ile yığının üst kısmı arasındaki tüm durum bilgilerini siler. Silinen bilgiler kaybolur.

CDC::RoundRect

Geçerli kalemi kullanarak yuvarlatılmış köşeleri olan bir dikdörtgen çizer.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Parametreler

x1
Dikdörtgenin sol üst köşesinin x koordinatını belirtir (mantıksal birimlerde).

y1
Dikdörtgenin sol üst köşesinin y koordinatını belirtir (mantıksal birimlerde).

x2
Dikdörtgenin sağ alt köşesinin x koordinatını belirtir (mantıksal birimlerde).

y2
Dikdörtgenin sağ alt köşesinin y koordinatını belirtir (mantıksal birimlerde).

x3
Yuvarlatılmış köşeleri çizmek için kullanılan üç noktanın genişliğini belirtir (mantıksal birimlerde).

y3
Yuvarlatılmış köşeleri çizmek için kullanılan üç noktanın yüksekliğini belirtir (mantıksal birimlerde).

lpRect
Sınırlayıcı dikdörtgeni mantıksal birimler halinde belirtir. Bu parametrenin yapısına RECT bir CRect nesne veya işaretçi geçirebilirsiniz.

point
x koordinatı point , yuvarlatılmış köşeleri çizmek için üç noktanın genişliğini belirtir (mantıksal birimlerde). y koordinatı point , yuvarlatılmış köşeleri çizmek için üç noktanın yüksekliğini belirtir (mantıksal birimlerde). Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Dikdörtgenin iç kısmı geçerli fırça kullanılarak doldurulur.

Bu işlevin çizdiği şekil yukarı doğru uzanır ancak sağ ve alt koordinatları içermez. Bu, şeklin yüksekliğinin ve y2 - y1 şeklin genişliğinin olduğu x2 - x1anlamına gelir. Sınırlayıcı dikdörtgenin hem yüksekliği hem de genişliği 2 birimden büyük ve 32.767 birimden az olmalıdır.

Örnek

void CDCView::DrawRoundRect(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // Draw a thick black rectangle filled with blue
   // corners rounded at a 17-unit radius. Note that
   // a radius of three or less is not noticeable because
   // the pen is three units wide.
   pDC->RoundRect(rect, CPoint(17, 17));

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::SaveDC

Durum bilgilerini (kırpma bölgesi, seçili nesneler ve eşleme modu gibi) Windows tarafından tutulan bir bağlam yığınına kopyalayarak cihaz bağlamının geçerli durumunu kaydeder.

virtual int SaveDC();

Dönüş Değeri

Kaydedilen cihaz bağlamını tanımlayan bir tamsayı. Hata oluşursa 0 olur. Bu dönüş değeri çağırarak RestoreDCcihaz bağlamını geri yüklemek için kullanılabilir.

Açıklamalar

Kaydedilen cihaz bağlamı daha sonra kullanılarak RestoreDCgeri yüklenebilir.

SaveDC herhangi bir sayıda cihaz bağlamı durumunu kaydetmek için herhangi bir sayıda kullanılabilir.

CDC::ScaleViewportExt

Görünüm penceresi kapsamlarını geçerli değerlere göre değiştirir.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parametreler

xNum
Geçerli x uzantısının çarpıldığı miktarı belirtir.

xDenom
Geçerli x uzantısını parametresinin değeriyle xNum çarpma sonucunun bölündüğü miktarı belirtir.

yNum
Geçerli y uzantısının çarpıldığı miktarı belirtir.

yDenom
Geçerli y uzantısını parametresinin değeriyle yNum çarpma sonucunun bölündüğü miktarı belirtir.

Dönüş Değeri

Önceki görünüm penceresi kapsamları (cihaz birimlerinde) bir CSize nesne olarak.

Açıklamalar

Formüller aşağıdaki gibi yazılır:

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

Yeni görünüm penceresi kapsamları, geçerli kapsamlar verilen payda ile çarpılarak ve sonra verilen paydaya bölünerek hesaplanır.

CDC::ScaleWindowExt

Geçerli değerlere göre pencere kapsamlarını değiştirir.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parametreler

xNum
Geçerli x uzantısının çarpıldığı miktarı belirtir.

xDenom
Geçerli x uzantısını parametresinin değeriyle xNum çarpma sonucunun bölündüğü miktarı belirtir.

yNum
Geçerli y uzantısının çarpıldığı miktarı belirtir.

yDenom
Geçerli y uzantısını parametresinin değeriyle yNum çarpma sonucunun bölündüğü miktarı belirtir.

Dönüş Değeri

Önceki pencere bir nesne olarak CSize kapsamları (mantıksal birimlerde).

Açıklamalar

Formüller aşağıdaki gibi yazılır:

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

Yeni pencere kapsamları, geçerli kapsamlar verilen payda ile çarpılarak ve sonra verilen paydaya bölünerek hesaplanır.

CDC::ScrollDC

Bitlerden oluşan bir dikdörtgeni yatay ve dikey olarak kaydırıyor.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Parametreler

dx
Yatay kaydırma birimi sayısını belirtir.

dy
Dikey kaydırma birimi sayısını belirtir.

lpRectScroll
Kayan dikdörtgenin RECT koordinatlarını içeren yapıya veya CRect nesneye işaret eder.

lpRectClip
Kırpma dikdörtgeninin RECT koordinatlarını içeren yapıya veya CRect nesneye işaret eder. Bu dikdörtgen tarafından işaret edilen lpRectScrollözgün dikdörtgenden küçük olduğunda kaydırma yalnızca küçük dikdörtgende gerçekleşir.

pRgnUpdate
Kaydırma işlemi tarafından ortaya çıkarılan bölgeyi tanımlar. ScrollDC işlevi bu bölgeyi tanımlar; dikdörtgen olması gerekmez.

lpRectUpdate
RECT Kaydırma güncelleştirme bölgesini sınırlayan dikdörtgenin koordinatlarını alan yapıya veya CRect nesneye işaret eder. Bu, yeniden boyama gerektiren en büyük dikdörtgen alandır. İşlev döndürdüğünde yapı veya nesnedeki değerler, verilen cihaz bağlamı için eşleme modundan bağımsız olarak istemci koordinatlarındadır.

Dönüş Değeri

Kaydırma yürütülürse sıfır olmayan; aksi takdirde 0.

Açıklamalar

ise lpRectUpdate NULL, Windows güncelleştirme dikdörtgenini hesaplamaz. Hem lpRectUpdate hem de pRgnUpdate iseNULL, Windows güncelleştirme bölgesini hesaplamaz. NULLdeğilsepRgnUpdate, Windows kaydırma işlemi tarafından ortaya çıkarılan bölgeye yönelik geçerli bir işaretçi içerdiğini varsayar (üye işlevi tarafından ScrollDC tanımlanır). 'de lpRectUpdate döndürülen güncelleştirme bölgesi gerekirse'ye CWnd::InvalidateRgn geçirilebilir.

Bir uygulama, bir pencerenin istemci alanının tamamını kaydırmak gerektiğinde sınıfın CWnd üye işlevini kullanmalıdırScrollWindow. Aksi takdirde kullanmalıdır ScrollDC.

CDC::SelectClipPath

Cihaz bağlamı için kırpma bölgesi olarak geçerli yolu seçer ve belirtilen modu kullanarak yeni bölgeyi mevcut kırpma bölgeleriyle birleştirir.

BOOL SelectClipPath(int nMode);

Parametreler

nMode
Yolu kullanmanın yolunu belirtir. Aşağıdaki değerlere izin verilir:

  • RGN_AND Yeni kırpma bölgesi, geçerli kırpma bölgesinin kesişimini (çakışan alanlar) ve geçerli yolu içerir.

  • RGN_COPY Yeni kırpma bölgesi geçerli yoldur.

  • RGN_DIFF Yeni kırpma bölgesi geçerli kırpma bölgesinin alanlarını içerir ve geçerli yolun alanları dışlanır.

  • RGN_OR Yeni kırpma bölgesi, geçerli kırpma bölgesinin birleşimini (birleşik alanlar) ve geçerli yolu içerir.

  • RGN_XOR Yeni kırpma bölgesi, geçerli kırpma bölgesinin ve geçerli yolun birleşimini içerir, ancak çakışan alanlar olmadan.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Tanımlanan cihaz bağlamı kapalı bir yol içermelidir.

CDC::SelectClipRgn

Cihaz bağlamı için geçerli kırpma bölgesi olarak verilen bölgeyi seçer.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Parametreler

pRgn
Seçilecek bölgeyi tanımlar.

  • Bu işlevin ilk sürümü için bu değer ise NULL, istemci alanının tamamı seçilir ve çıkış yine pencereye kırpılır.

  • Bu işlevin ikinci sürümü için bu tanıtıcı yalnızca mod belirtildiğinde RGN_COPY olabilirNULL.

nMode
Gerçekleştirilecek işlemi belirtir. Aşağıdaki değerlerden biri olmalıdır:

  • RGN_AND Yeni kırpma bölgesi, geçerli kırpma bölgesinin çakışan alanlarını ve tarafından pRgntanımlanan bölgeyi birleştirir.

  • RGN_COPY Yeni kırpma bölgesi, tarafından pRgntanımlanan bölgenin bir kopyasıdır. Bu işlev, ilk sürümüyle SelectClipRgnaynıdır. tarafından pRgn tanımlanan bölge ise NULL, yeni kırpma bölgesi varsayılan kırpma bölgesi (null bölge) olur.

  • RGN_DIFF Yeni kırpma bölgesi, geçerli kırpma bölgesinin alanlarını tarafından pRgntanımlanan bölgeden dışlanan alanlarla birleştirir.

  • RGN_OR Yeni kırpma bölgesi, geçerli kırpma bölgesini ve tarafından pRgntanımlanan bölgeyi birleştirir.

  • RGN_XOR Yeni kırpma bölgesi geçerli kırpma bölgesini ve tarafından pRgn tanımlanan bölgeyi birleştirir ancak çakışan alanları dışlar.

Dönüş Değeri

Bölgenin türü. Aşağıdaki değerlerden herhangi biri olabilir:

  • COMPLEXREGION Yeni kırpma bölgesinin kenarlıkları çakışıyor.

  • ERROR Cihaz bağlamı veya bölgesi geçerli değil.

  • NULLREGION Yeni kırpma bölgesi boş.

  • SIMPLEREGION Yeni kırpma bölgesinde çakışan kenarlıklar yok.

Açıklamalar

Seçili bölgenin yalnızca bir kopyası kullanılır. Bölge, herhangi bir sayıda diğer cihaz bağlamı için seçilebilir veya silinebilir.

işlevi, belirtilen bölge için koordinatların cihaz birimlerinde belirtildiğini varsayar. Bazı yazıcı cihazları, metin ölçümlerini ifade etmek için gereken duyarlığı korumak için metin çıkışını grafik çıkışından daha yüksek çözünürlükte destekler. Bu cihazlar, cihaz birimlerini daha yüksek çözünürlükte, yani metin birimlerinde bildirir. Daha sonra bu cihazlar, bildirilen birkaç cihaz biriminin yalnızca 1 grafik birimiyle eşlenebilmesi için grafiklerin koordinatlarını ölçeklendirir. İşlevi SelectClipRgn her zaman metin birimlerini kullanarak çağırmalısınız.

GDI'daki grafik nesnelerinin ölçeklendirmesini alması gereken uygulamalar, ölçeklendirme faktörünü GETSCALINGFACTOR belirlemek için yazıcı kaçışını kullanabilir. Bu ölçeklendirme faktörü kırpmayı etkiler. Grafikleri kırpmak için bir bölge kullanılıyorsa, GDI koordinatları ölçeklendirme faktörüne böler. Bölge metni kırpmak için kullanılıyorsa, GDI ölçeklendirme ayarlaması yapmaz. 1 ölçeklendirme faktörü koordinatların 2'ye bölünmesine neden olur; 2'lik bir ölçeklendirme faktörü koordinatların 4'e bölünmesine neden olur; ve benzeri.

CDC::SelectObject

Cihaz bağlamında bir nesne seçer.

CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
CGdiObject* SelectObject(CGdiObject* pObject);

Parametreler

pPen
Seçilecek nesnenin CPen işaretçisi.

pBrush
Seçilecek nesnenin CBrush işaretçisi.

pFont
Seçilecek nesnenin CFont işaretçisi.

pBitmap
Seçilecek nesnenin CBitmap işaretçisi.

pRgn
Seçilecek nesnenin CRgn işaretçisi.

pObject
Seçilecek nesnenin CGdiObject işaretçisi.

Dönüş Değeri

Değiştirilen nesnenin işaretçisi. Bu, işlevin hangi sürümünün kullanıldığına bağlı olarakCPen, öğesinden türetilen sınıflardan CGdiObjectbirinin nesnesine yönelik bir işaretçidir. Dönüş değeri, bir hata varsa değeridir NULL . Bu işlev geçici bir nesneye işaretçi döndürebilir. Bu geçici nesne yalnızca bir Windows iletisinin işlenmesi sırasında geçerlidir. Daha fazla bilgi için bkz. CGdiObject::FromHandle.

Bölge parametresini alan üye işlevinin sürümü, üye işleviyle SelectClipRgn aynı görevi gerçekleştirir. Dönüş değeri aşağıdakilerden biri olabilir:

  • COMPLEXREGION Yeni kırpma bölgesinin kenarlıkları çakışıyor.

  • ERROR Cihaz bağlamı veya bölgesi geçerli değil.

  • NULLREGION Yeni kırpma bölgesi boş.

  • SIMPLEREGION Yeni kırpma bölgesinde çakışan kenarlıklar yok.

Açıklamalar

Sınıfı CDC kalemler, fırçalar, yazı tipleri, bit eşlemler ve bölgeler dahil olmak üzere belirli GDI nesneleri için özelleştirilmiş beş sürüm sağlar. Yeni seçilen nesne, aynı türdeki önceki nesnenin yerini alır. Örneğin, bir CPen nesneye işaret eden genel sürümdense pObject SelectObject, işlevi geçerli kalemi tarafından pObjectbelirtilen kalemle değiştirir.

Uygulama bir bit eşlemi yalnızca bellek cihazı bağlamlarına ve aynı anda yalnızca bir bellek cihazı bağlamı olarak seçebilir. Bit eşlem biçiminin tek renkli veya cihaz bağlamıyla uyumlu olması gerekir; değilse bir SelectObject hata döndürür.

Windows 3.1 ve sonraki sürümler için işlev, SelectObject meta dosyada kullanılsa da kullanılmasa da aynı değeri döndürür. Windows'un önceki sürümlerinde başarı SelectObject için sıfır olmayan bir değer ve meta dosyada kullanıldığında hata için 0 döndürdü.

CDC::SelectPalette

tarafından pPalette cihaz bağlamının seçili palet nesnesi olarak belirtilen mantıksal paleti seçer.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Parametreler

pPalette
Seçilecek mantıksal paleti tanımlar. Bu palet, üye işleviyle CPalette CreatePaletteönceden oluşturulmuş olmalıdır.

bForceBackground
Mantıksal paletin arka plan paleti olmaya zorlanıp zorlanmayacağını belirtir. Sıfır olmayan bir değerse bForceBackground , pencerenin giriş odağını kullanıp kullanmadığına bakılmaksızın, seçilen palet her zaman bir arka plan paletidir. 0 ise ve cihaz bağlamı bir pencereye bağlıysa bForceBackground , pencere giriş odağına sahip olduğunda mantıksal palet bir ön plan paletidir.

Dönüş Değeri

Mantıksal paleti tanımlayan bir CPalette nesnenin işaretçisi, tarafından pPalettebelirtilen paletle değiştirildi. Hata NULL olması gerekir.

Açıklamalar

Yeni palet, cihaz bağlamında görüntülenen renkleri denetlemek için GDI tarafından kullanılan palet nesnesi olur ve önceki paletin yerini alır.

Bir uygulama birden fazla cihaz bağlamında mantıksal palet seçebilir. Ancak mantıksal palette yapılan değişiklikler, seçildiği tüm cihaz bağlamlarını etkiler. Bir uygulama birden fazla cihaz bağlamı için bir palet seçerse, cihaz bağlamlarının tümü aynı fiziksel cihaza ait olmalıdır.

CDC::SelectStockObject

Önceden tanımlanmış stok kalemlerinden, fırçalardan veya yazı tiplerinden birine karşılık gelen bir CGdiObject nesne seçer.

virtual CGdiObject* SelectStockObject(int nIndex);

Parametreler

nIndex
İstenen stok nesnesi türünü belirtir. Aşağıdaki değerlerden biri olabilir:

  • BLACK_BRUSH Siyah fırça.

  • DKGRAY_BRUSH Koyu gri fırça.

  • GRAY_BRUSH Gri fırça.

  • HOLLOW_BRUSH Boş fırça.

  • LTGRAY_BRUSH Açık gri fırça.

  • NULL_BRUSH Boş fırça.

  • WHITE_BRUSH Beyaz fırça.

  • BLACK_PEN Siyah kalem.

  • NULL_PEN Boş kalem.

  • WHITE_PEN Beyaz kalem.

  • ANSI_FIXED_FONT ANSI sabit sistem yazı tipi.

  • ANSI_VAR_FONT ANSI değişken sistem yazı tipi.

  • DEVICE_DEFAULT_FONT Cihaza bağımlı yazı tipi.

  • OEM_FIXED_FONT OEM'e bağımlı sabit yazı tipi.

  • SYSTEM_FONT Sistem yazı tipi. Varsayılan olarak, Windows menüleri, iletişim kutusu denetimlerini ve diğer metinleri çizmek için sistem yazı tipini kullanır. Ancak, iletişim kutuları ve pencereler tarafından kullanılan yazı tipini elde etmek için güvenmemek SYSTEM_FONT en iyisidir. Bunun yerine, geçerli yazı tipini almak için parametresiyle SPI_GETNONCLIENTMETRICS işlevini kullanınSystemParametersInfo. SystemParametersInfo geçerli temayı dikkate alır ve resim yazıları, menüler ve ileti iletişim kutuları için yazı tipi bilgileri sağlar.

  • SYSTEM_FIXED_FONT Windows'ta 3.0 sürümünden önce kullanılan sabit genişlikli sistem yazı tipi. Bu nesne, Windows'un önceki sürümleriyle uyumluluk için kullanılabilir.

  • DEFAULT_PALETTE Varsayılan renk paleti. Bu palet, sistem paletindeki 20 statik renkten oluşur.

Dönüş Değeri

İşlev başarılı olursa değiştirilen nesnenin işaretçisi CGdiObject . İşaret edilen gerçek nesne bir CPen, CBrushveya CFont nesnesidir. Çağrı başarısız olursa, dönüş değeri NULL olur.

CDC::SetAbortProc

Yazdırma işi için iptal yordamını yükler.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Parametreler

lpfn
Abort yordamı olarak yüklenecek abort işlevinin işaretçisi. Geri çağırma işlevi hakkında daha fazla bilgi için bkz . için CDC::SetAbortProcGeri Çağırma İşlevi.

Dönüş Değeri

İşlevin SetAbortProc sonucunu belirtir. Aşağıdaki değerlerden bazıları diğerlerinden daha olasıdır, ancak tümü mümkündür.

  • SP_ERROR Genel hata.

  • SP_OUTOFDISK Şu anda biriktirme için yeterli disk alanı yok ve artık kullanılabilir alan olmayacak.

  • SP_OUTOFMEMORY Biriktirme için yeterli bellek yok.

  • SP_USERABORT Kullanıcı, yazdırma yöneticisi aracılığıyla işi sona erdirdi.

Açıklamalar

Bir uygulama yazdırma işinin biriktirme sırasında iptal edilmesine izin verecekse, yazdırma işi üye işleviyle StartDoc başlatılmadan önce iptal işlevini ayarlamalıdır. Yazdırma Yöneticisi, uygulamanın yazdırma işini iptal etmesine veya yetersiz disk alanı koşullarını işlemesine izin vermek için biriktirme sırasında abort işlevini çağırır. Hiçbir durdurma işlevi ayarlanmadıysa, yazdırma işi biriktirilecek yeterli disk alanı yoksa başarısız olur.

Microsoft Visual C++ özellikleri, öğesine geçirilen geri çağırma işlevinin oluşturulmasını SetAbortProcbasitleştirir. Üye işlevine EnumObjects geçirilen adres, çağrı kuralıyla ve ile __declspec(dllexport) dışarı aktarılan bir işlevin işaretçisidir __stdcall .

Ayrıca uygulamanızın modül tanımı dosyasındaki bir EXPORTS deyimde işlev adını dışarı aktarmanız gerekmez. Bunun yerine işlev değiştiricisini EXPORT aşağıdaki gibi kullanabilirsiniz:

BOOL CALLBACK EXPORT AFunction( HDC, int );

derleyicinin diğer ad kullanmadan ada göre dışarı aktarma için uygun dışarı aktarma kaydını yaymasına neden olur. Bu, çoğu ihtiyaç için işe yarar. İşlevi sıralı olarak dışarı aktarma veya dışarı aktarmaya diğer ad ekleme gibi bazı özel durumlarda, modül tanımı dosyasında bir deyimi kullanmanız EXPORTS gerekir.

Geri çağırma kayıt arabirimleri artık tür açısından güvenlidir (belirli bir geri çağırma için doğru işlev türünü gösteren bir işlev işaretçisi geçirmeniz gerekir).

Geri çağırma sınırları boyunca özel durumlar oluşturulamadığından, Windows'a dönmeden önce tüm geri çağırma işlevlerinin Microsoft Foundation özel durumlarını yakalaması gerekir. Özel durumlar hakkında daha fazla bilgi için Özel durumlar makalesine bakın.

CDC::SetArcDirection

Yay ve dikdörtgen işlevleri için kullanılacak çizim yönünü ayarlar.

int SetArcDirection(int nArcDirection);

Parametreler

nArcDirection
Yeni yay yönünü belirtir. Bu parametre aşağıdaki değerlerden biri olabilir:

  • AD_COUNTERCLOCKWISE Saat yönünün tersine çizilmiş şekiller.

  • AD_CLOCKWISE Şekiller saat yönünde çizilir.

Dönüş Değeri

Başarılı olursa eski yay yönünü belirtir; aksi takdirde 0.

Açıklamalar

Varsayılan yön saat yönünün tersinedir. işlevi, SetArcDirection aşağıdaki işlevlerin çizdiği yönü belirtir:

Arc Pasta
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Öznitelik cihaz bağlamını ayarlamak için bu işlevi çağırın: m_hAttribDC.

virtual void SetAttribDC(HDC hDC);

Parametreler

hDC
Windows cihaz bağlamı.

Açıklamalar

Bu üye işlevi, cihaz bağlamını nesneye CDC eklemez. Nesneye yalnızca çıkış cihazı bağlamı eklenir CDC .

CDC::SetBkColor

Geçerli arka plan rengini belirtilen renge ayarlar.

virtual COLORREF SetBkColor(COLORREF crColor);

Parametreler

crColor
Yeni arka plan rengini belirtir.

Dönüş Değeri

RGB renk değeri olarak önceki arka plan rengi. Hata oluşursa, dönüş değeri 0x80000000.

Açıklamalar

Arka plan modu ise OPAQUE, sistem stil çizgilerindeki boşlukları, fırçalardaki taranmış çizgiler arasındaki boşlukları ve karakter hücrelerindeki arka planı doldurmak için arka plan rengini kullanır. Sistem, bit eşlemleri renk ve tek renkli cihaz bağlamları arasında dönüştürürken arka plan rengini de kullanır.

Cihaz belirtilen rengi görüntüleyemiyorsa, sistem arka plan rengini en yakın fiziksel renge ayarlar.

CDC::SetBkMode

Arka plan modunu ayarlar.

int SetBkMode(int nBkMode);

Parametreler

nBkMode
Ayarlanacak modu belirtir. Bu parametre aşağıdaki değerlerden biri olabilir:

  • OPAQUE Metin, taranmış fırça veya kalem çizilmeden önce arka plan geçerli arka plan rengiyle doldurulur. Bu varsayılan arka plan modudur.

  • TRANSPARENT Çizimden önce arka plan değiştirilmez.

Dönüş Değeri

Önceki arka plan modu.

Açıklamalar

Arka plan modu, sistemin metin çizmeden önce çizim yüzeyindeki mevcut arka plan renklerini mi, taranmış fırçaları mı yoksa düz çizgi olmayan kalem stilini mi kaldırdığını tanımlar.

Örnek

örneğine CWnd::OnCtlColorbakın.

CDC::SetBoundsRect

Belirtilen cihaz bağlamı için sınırlayıcı dikdörtgen bilgilerinin birikmesi denetler.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Parametreler

lpRectBounds
Sınırlayıcı dikdörtgeni ayarlamak için kullanılan bir RECT yapıyı veya CRect nesneyi gösterir. Dikdörtgen boyutları mantıksal koordinatlarda verilir. Bu parametre olabilir NULL.

flags
Yeni dikdörtgenin birikmiş dikdörtgenle nasıl birleştirileceğini belirtir. Bu parametre aşağıdaki değerlerin bir bileşimi olabilir:

  • DCB_ACCUMULATE tarafından lpRectBounds belirtilen dikdörtgeni sınırlayıcı dikdörtgene ekleyin (dikdörtgen birleşim işlemi kullanarak).

  • DCB_DISABLE Sınır birikimini kapatın.

  • DCB_ENABLE Sınır birikimini açın. (Sınır birikimi için varsayılan ayar devre dışıdır.)

Dönüş Değeri

İşlev başarılı olursa sınırlayıcı dikdörtgenin geçerli durumu. gibi flags, dönüş değeri değerlerin DCB_ bir bileşimi olabilir:

  • DCB_ACCUMULATE Sınırlayıcı dikdörtgen boş değil. Bu değer her zaman ayarlanır.

  • DCB_DISABLE Sınır birikimi kapalı.

  • DCB_ENABLE Sınır birikimi açık.

Açıklamalar

Windows, tüm çizim işlemleri için sınırlayıcı bir dikdörtgen bulundurabilir. Bu dikdörtgen uygulama tarafından sorgulanabilir ve sıfırlanabilir. Çizim sınırları bit eşlem önbelleklerini geçersiz hale getirmede yararlıdır.

CDC::SetBrushOrg

GDI'nin uygulamanın cihaz bağlamında seçtiği bir sonraki fırçaya atayacağı kaynağı belirtir.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Parametreler

x
Yeni kaynağın x koordinatını (cihaz birimlerinde) belirtir. Bu değer 0-7 aralığında olmalıdır.

y
Yeni kaynağın y koordinatını (cihaz birimlerinde) belirtir. Bu değer 0-7 aralığında olmalıdır.

point
Yeni kaynağın x ve y koordinatlarını belirtir. Her değer 0-7 aralığında olmalıdır. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

Cihaz birimlerindeki fırçanın önceki çıkış noktası.

Açıklamalar

Fırça başlangıcı için varsayılan koordinatlar şunlardır (0, 0). Fırçanın kaynağını değiştirmek için CBrush nesnenin işlevini çağırınUnrealizeObject, öğesini çağırın SetBrushOrgve ardından cihaz bağlamında fırçayı seçmek için üye işlevini çağırınSelectObject.

Stok CBrush nesneleriyle kullanmayınSetBrushOrg.

CDC::SetColorAdjustment

Belirtilen değerleri kullanarak cihaz bağlamı için renk ayarlama değerlerini ayarlar.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Parametreler

lpColorAdjust
Renk ayarlama değerlerini içeren bir COLORADJUSTMENT veri yapısına işaret eder.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Renk ayarlama değerleri, mod ayarlandığında üye işlevine HALFTONE yapılan çağrılar için kaynak bit eşleminin CDC::StretchBlt giriş rengini ayarlamak için kullanılır.

CDC::SetDCBrushColor

Geçerli cihaz bağlamı (DC) fırça rengini belirtilen renk değerine ayarlar.

COLORREF SetDCBrushColor(COLORREF crColor);

Parametreler

crColor
Yeni fırça rengini belirtir.

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri önceki DC fırça rengini bir COLORREF değer olarak belirtir.

İşlev başarısız olursa, dönüş değeri olur CLR_INVALID.

Açıklamalar

Bu yöntem, Windows SDK'da açıklandığı gibi işlevinin SetDCBrushColorişlevselliğine öykünmektedir.

CDC::SetDCPenColor

Geçerli cihaz bağlamı (DC) kalem rengini belirtilen renk değerine ayarlar.

COLORREF SetDCPenColor(COLORREF crColor);

Parametreler

crColor
Yeni kalem rengini belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu üye işlevi, Windows SDK'da açıklandığı gibi Win32 işlevini SetDCPenColorkullanır.

CDC::SetGraphicsMode

Belirtilen cihaz bağlamı için grafik modunu ayarlar.

int SetGraphicsMode(int iMode);

Parametreler

iMode
Grafik modunu belirtir. Bu parametrenin alabildiği değerlerin listesi için bkz SetGraphicsMode. .

Dönüş Değeri

Başarılı olduğunda eski grafik modunu döndürür.

Hata durumunda 0 döndürür. Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.

Açıklamalar

Bu yöntem, Windows GDI işlevini SetGraphicsModesarmalar.

CDC::SetLayout

Arapça ve İbranice gibi kültürler için standart düzen olan cihaz bağlamının metin ve grafik düzenini sağdan sola değiştirmek için bu üye işlevini çağırın.

DWORD SetLayout(DWORD dwLayout);

Parametreler

dwLayout
Cihaz bağlam düzeni ve bit eşlem denetimi bayrakları. Aşağıdaki değerlerin bir bileşimi olabilir.

Değer Anlamı
LAYOUT_BITMAPORIENTATIONPRESERVED ve CDC::StretchBltçağrıları için herhangi bir yansımayı CDC::BitBlt devre dışı bırakır.
LAYOUT_RTL Varsayılan yatay düzeni sağdan sola olacak şekilde ayarlar.
LAYOUT_LTR Varsayılan düzeni soldan sağa olacak şekilde ayarlar.

Dönüş Değeri

Başarılı olursa, cihaz bağlamının önceki düzeni.

Başarısız olursa, GDI_ERROR. Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.

Açıklamalar

Normalde pencere çağırmazsınız SetLayout . Bunun yerine, gibi WS_EX_RTLREADINGgenişletilmiş pencere stillerini ayarlayarak bir penceredeki sağdan sola düzeni denetleyebilirsiniz. Yazıcı veya meta dosyası gibi bir cihaz bağlamı bu düzeni devralamaz. Sağdan sola düzen için cihaz bağlamını ayarlamanın tek yolu çağrısı SetLayoutyapmaktır.

çağrısı SetLayout(LAYOUT_RTL)yaparsanız, SetLayout eşleme modunu otomatik olarak olarak MM_ISOTROPIColarak değiştirir. Sonuç olarak, yerine sonraki bir çağrısı GetMapMode döndürülecektir MM_ISOTROPIC MM_TEXT.

Birçok bit eşlem gibi bazı durumlarda, soldan sağa düzeni korumak isteyebilirsiniz. Böyle durumlarda, veya öğesini çağırarak BitBlt görüntüyü işleyin, ardından için dwLayout bit eşlem denetim bayrağını olarak LAYOUT_BITMAPORIENTATIONPRESERVEDayarlayın.StretchBlt

Düzeni bayrakla LAYOUT_RTL değiştirdiğinizde, normalde sağ veya sol belirten bayraklar ters çevrilir. Karışıklığı önlemek için standart bayraklar için alternatif adlar tanımlamak isteyebilirsiniz. Önerilen alternatif bayrak adlarının listesi için Bkz SetLayout . Windows SDK'sında.

CDC::SetMapMode

Eşleme modunu ayarlar.

virtual int SetMapMode(int nMapMode);

Parametreler

nMapMode
Yeni eşleme modunu belirtir. Aşağıdaki değerlerden herhangi biri olabilir:

  • MM_ANISOTROPIC Mantıksal birimler rastgele ölçeklendirilmiş eksenlere sahip rastgele birimlere dönüştürülür. Eşleme modunun olarak MM_ANISOTROPIC ayarlanması geçerli pencere veya görünüm penceresi ayarlarını değiştirmez. Birimleri, yönlendirmeyi ve ölçeklendirmeyi değiştirmek için ve SetViewportExt üye işlevlerini çağırınSetWindowExt.

  • MM_HIENGLISH Her mantıksal birim 0,001 inç'e dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.

  • MM_HIMETRIC Her mantıksal birim 0,01 milimetreye dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.

  • MM_ISOTROPIC Mantıksal birimler eşit ölçeklenmiş eksenlere sahip rastgele birimlere dönüştürülür; yani x ekseni boyunca 1 birim, y ekseni boyunca 1 birime eşittir. SetWindowExt İstenen birimleri ve eksenlerin yönlendirmesini belirtmek için ve SetViewportExt üye işlevlerini kullanın. GDI, x ve y birimlerinin aynı boyutta kalmasını sağlamak için gerekli ayarlamaları yapar.

  • MM_LOENGLISH Her mantıksal birim 0,01 inç'e dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.

  • MM_LOMETRIC Her mantıksal birim 0,1 milimetreye dönüştürülür. Pozitif x sağ taraftadır; pozitif y çalışır durumda.

  • MM_TEXT Her mantıksal birim 1 cihaz pikseline dönüştürülür. Pozitif x sağ taraftadır; Pozitif y düştü.

  • MM_TWIPS Her mantıksal birim bir noktanın 1/20'sine dönüştürülür. (Nokta 72/1/1440 inç olduğundan, bir twip 1/1440 inçtir.) Pozitif x sağ taraftadır; pozitif y çalışır durumda.

Dönüş Değeri

Önceki eşleme modu.

Açıklamalar

Eşleme modu, mantıksal birimleri cihaz birimlerine dönüştürmek için kullanılan ölçü birimini tanımlar; ayrıca cihazın x ve y eksenlerinin yönlendirmesini de tanımlar. GDI, mantıksal koordinatları uygun cihaz koordinatlarına dönüştürmek için eşleme modunu kullanır. Mod MM_TEXT , uygulamaların 1 birimin 1 piksele eşit olduğu cihaz piksellerinde çalışmasına olanak tanır. Pikselin fiziksel boyutu cihazdan cihaza değişir.

MM_HIENGLISH, MM_HIMETRIC, , MM_LOENGLISH, MM_LOMETRICve MM_TWIPS modları, fiziksel olarak anlamlı birimlerde (inç veya milimetre gibi) çizmesi gereken uygulamalar için kullanışlıdır. Mod MM_ISOTROPIC 1:1 en boy oranını sağlar. Bu, görüntünün tam şeklinin korunması önemli olduğunda kullanışlıdır. Mod, MM_ANISOTROPIC x ve y koordinatlarının bağımsız olarak ayarlanmasını sağlar.

Not

DC'yi (cihaz bağlamı) sağdan sola düzen olarak değiştirmek için çağırırsanız SetLayout , SetLayout eşleme modunu otomatik olarak olarak olarak MM_ISOTROPICdeğiştirir.

Örnek

örneğine CView::OnPrepareDCbakın.

CDC::SetMapperFlags

Mantıksal yazı tipini fiziksel yazı tipine dönüştürdüğünde yazı tipi eşleyicisi tarafından kullanılan yöntemi değiştirir.

DWORD SetMapperFlags(DWORD dwFlag);

Parametreler

dwFlag
Yazı tipi eşleyicisinin bir yazı tipinin en boy yüksekliğiyle ve genişliğiyle cihazla eşleştirmeye çalışıp çalışmayacağını belirtir. Bu değer olduğunda ASPECT_FILTERING, eşleyici yalnızca x ve y yönü belirtilen cihazınkilerle tam olarak eşleşen yazı tiplerini seçer.

Dönüş Değeri

Font-mapper bayrağının önceki değeri.

Açıklamalar

Bir uygulama, yazı tipi eşleyicisinin yalnızca belirtilen cihazın en boy oranıyla tam olarak eşleşen bir fiziksel yazı tipi seçmeye çalışmasına neden olmak için kullanabilir SetMapperFlags .

Yalnızca raster yazı tipleri kullanan bir uygulama, yazı tipi eşleyicisi tarafından seçilen yazı tipinin belirtilen cihazda çekici ve okunabilir olduğundan emin olmak için işlevini kullanabilir SetMapperFlags . Ölçeklenebilir (TrueType) yazı tipleri kullanan uygulamalar genellikle kullanmaz SetMapperFlags.

Fiziksel yazı tipinin mantıksal yazı tipindeki belirtim ile eşleşen bir en boy oranı yoksa, GDI yeni bir en boy oranı seçer ve bu yeni en boy oranıyla eşleşen bir yazı tipi seçer.

CDC::SetMiterLimit

Cihaz bağlamı için sicim birleşimlerinin uzunluğu sınırını ayarlar.

BOOL SetMiterLimit(float fMiterLimit);

Parametreler

fMiterLimit
Cihaz bağlamı için yeni sicim sınırını belirtir.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Sici uzunluğu, birleştirmenin içindeki çizgi duvarlarının kesişiminden, birleştirmenin dışındaki çizgi duvarlarının kesişimine olan uzaklık olarak tanımlanır. Sönücü sınırı, sicim uzunluğunun çizgi genişliğine izin verilen en yüksek oranıdır. Varsayılan sicim sınırı 10,0'dır.

CDC::SetOutputDC

Çıkış cihazı bağlamını ayarlamak için bu üye işlevini çağırın. m_hDC

virtual void SetOutputDC(HDC hDC);

Parametreler

hDC
Windows cihaz bağlamı.

Açıklamalar

Bu üye işlevi yalnızca nesneye CDC bir cihaz bağlamı eklenmediğinde çağrılabilir. Bu üye işlevi cihaz bağlamını nesneye CDC ayarlar m_hDC ancak eklemez.

CDC::SetPixel

Belirtilen noktadaki pikseli, tarafından crColorbelirtilen rengin en yakın yaklaşık değerine ayarlar.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Parametreler

x
Ayarlanacak noktanın mantıksal x koordinatını belirtir.

y
Ayarlanacak noktanın mantıksal y koordinatını belirtir.

crColor
Noktayı COLORREF boyamak için kullanılan rengi belirten RGB değeri. Bu değerin açıklaması için Bkz COLORREF . Windows SDK'sı.

point
Ayarlanacak noktanın mantıksal x ve y koordinatlarını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

Noktanın boyanmış olduğu renk için rgb değeri. Bu değer, bu rengin yaklaşık olarak kullanılması durumunda belirtilen crColor değerden farklı olabilir. İşlev başarısız olursa (nokta kırpma bölgesinin dışındaysa), dönüş değeri -1 olur.

Açıklamalar

Nokta kırpma bölgesinde olmalıdır. Nokta kırpma bölgesinde değilse işlev hiçbir şey yapmaz.

Tüm cihazlar işlevi desteklemez SetPixel . Bir cihazın destekleyip desteklemediğini SetPixelbelirlemek içinRC_BITBLT, üye işlevini dizinle çağırın GetDeviceCaps RASTERCAPS ve bayrağının dönüş değerini denetleyin.

CDC::SetPixelV

Belirtilen koordinatlarda pikseli, belirtilen rengin en yakın yaklaşık değerine ayarlar.

BOOL SetPixelV(
    int x,
    int y,
    COLORREF crColor);

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Parametreler

x
Ayarlanacak noktanın mantıksal birimlerinde x koordinatını belirtir.

y
Ayarlanacak noktanın y koordinatını mantıksal birimler halinde belirtir.

crColor
Noktayı boyamak için kullanılacak rengi belirtir.

point
Ayarlanacak noktanın mantıksal x ve y koordinatlarını belirtir. Bu parametre için bir POINT veri yapısı veya CPoint nesnesi geçirebilirsiniz.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Nokta hem kırpma bölgesinde hem de cihaz yüzeyinin görünür bölümünde olmalıdır. Tüm cihazlar üye işlevini desteklemez. Daha fazla bilgi için bkz RC_BITBLT . üye işlevindeki CDC::GetDeviceCaps yetenek. SetPixelV daha hızlıdır SetPixel çünkü boyanan noktanın renk değerini döndürmesi gerekmez.

CDC::SetPolyFillMode

Çokgen doldurma modunu ayarlar.

int SetPolyFillMode(int nPolyFillMode);

Parametreler

nPolyFillMode
Yeni doldurma modunu belirtir. Bu değer veya ALTERNATE WINDINGolabilir. Windows'ta ayarlanan varsayılan mod şeklindedir ALTERNATE.

Dönüş Değeri

Başarılı olursa önceki doldurma modu; aksi takdirde 0.

Açıklamalar

Çokgen doldurma modu olduğunda ALTERNATE, sistem her tarama satırında tek numaralı ve çift numaralı çokgen kenarlar arasındaki alanı doldurur. Diğer bir ifadeyle, sistem birinci ve ikinci taraf arasındaki, üçüncü ve dördüncü taraf arasındaki alanı doldurur ve bu şekilde devam eder. Bu varsayılan moddur.

Çokgen doldurma modu olduğunda WINDING, sistem bir alanın doldurulup doldurulmayacağını belirlemek için bir şeklin çizildiği yönü kullanır. Çokgendeki her çizgi kesimi saat yönünde veya saat yönünün tersine çizilir. Kapalı bir alandan şeklin dışına doğru çizilen bir sanal çizgi saat yönündeki bir çizgi kesiminden geçtiğinde, bir sayı artırılır. Satır saat yönünün tersine bir çizgi kesiminden geçtiğinde sayı azalmış olur. Çizgi şeklin dışına ulaştığında sayı sıfır değilse alan doldurulur.

CDC::SetROP2

Geçerli çizim modunu ayarlar.

int SetROP2(int nDrawMode);

Parametreler

nDrawMode
Yeni çizim modunu belirtir. Aşağıdaki değerlerden herhangi biri olabilir:

  • R2_BLACK Piksel her zaman siyahtır.

  • R2_WHITE Piksel her zaman beyazdır.

  • R2_NOP Piksel değişmeden kalır.

  • R2_NOT Piksel, ekran renginin tersidir.

  • R2_COPYPEN Piksel kalem rengidir.

  • R2_NOTCOPYPEN Piksel, kalem renginin tersidir.

  • R2_MERGEPENNOT Piksel, kalem renginin ve ekran renginin tersini (son piksel = (~ ekran pikseli) | kalemin birleşimidir.

  • R2_MASKPENNOT Piksel, hem kalem hem de ekranın tersi (son piksel = (~ ekran pikseli) & kalemi için ortak olan renklerin bir bileşimidir.

  • R2_MERGENOTPEN Piksel, ekran renginin ve kalem renginin tersini (son piksel = (~ kalem) | ekran pikselinin birleşimidir.

  • R2_MASKNOTPEN Piksel, hem ekranda hem de kalemin tersinde ortak olan renklerin bir bileşimidir (son piksel = (~ kalem) & ekran pikseli).

  • R2_MERGEPEN Piksel, kalem rengi ile ekran renginin (son piksel = kalem | ekranı pikseli) birleşimidir.

  • R2_NOTMERGEPEN Piksel, rengin R2_MERGEPEN tersidir (son piksel = ~ (kalem | ekranı pikseli)).

  • R2_MASKPEN Piksel, hem kalem hem de ekran için ortak olan renklerin bir bileşimidir (son piksel = kalem & ekranı pikseli).

  • R2_NOTMASKPEN Piksel, rengin R2_MASKPEN tersidir (son piksel = ~ (kalem & ekranı pikseli)).

  • R2_XORPEN Piksel, kalemdeki veya ekrandaki renklerin birleşimidir, ancak her ikisinde de (son piksel = kalem ^ ekranı pikseli) değildir.

  • R2_NOTXORPEN Piksel, rengin R2_XORPEN tersidir (son piksel = ~ (kalem ^ ekranı pikseli)).

Dönüş Değeri

Önceki çizim modu.

Windows SDK'sında verilen değerlerden herhangi biri olabilir.

Açıklamalar

Çizim modu, kalemin renklerinin ve doldurulmuş nesnelerin iç kısmının zaten ekran yüzeyindeki renkle nasıl birleştirilme şeklini belirtir.

Çizim modu yalnızca raster cihazlar içindir; vektör cihazları için geçerli değildir. Çizim modları, , ve (özel|) ikili işleçlerini |&ve ^ birli işlemi ~kullanarak iki değişkenin tüm olası Boole birleşimlerini temsil eden ikili raster-işlem kodlarıdır.

CDC::SetStretchBltMode

Üye işlevi için StretchBlt bit eşlem genişletme modunu ayarlar.

int SetStretchBltMode(int nStretchMode);

Parametreler

nStretchMode
Esnetme modunu belirtir. Aşağıdaki değerlerden herhangi biri olabilir:

Value Açıklama
BLACKONWHITE Ortadan kaldırılan ve var olan piksellerin renk değerlerini kullanarak boole & işlemi gerçekleştirir. Bit eşlem tek renkli bir bit eşlemse, bu mod siyah pikselleri beyaz pikseller pahasına korur.
COLORONCOLOR Pikselleri siler. Bu mod, bilgilerini korumaya çalışmadan ortadan kaldırılan tüm piksel satırlarını siler.
HALFTONE Kaynak dikdörtgendeki pikselleri hedef dikdörtgendeki piksel bloklarına eşler. Piksellerin hedef bloğu üzerindeki ortalama renk, kaynak piksellerin rengine yaklaşık olarak gösterilir.
Esnetme modunu ayarladıktan HALFTONE sonra, fırça çıkış noktasını ayarlamak için uygulamanın Win32 işlevini SetBrushOrgEx çağırması gerekir. Bunu yapamazsa, fırça yanlış hizalanması oluşur.
STRETCH_ANDSCANS Windows 95/98: Aynı BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: Aynı COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: ile HALFTONEaynıdır.
STRETCH_ORSCANS Windows 95/98: Aynı WHITEONBLACK
WHITEONBLACK Ortadan kaldırılan ve var olan piksellerin renk değerlerini kullanarak boole | işlemi gerçekleştirir. Bit eşlem tek renkli bir bit eşlem ise, bu mod siyah pikseller pahasına beyaz pikselleri korur.

Dönüş Değeri

Önceki esnetme modu. , veya STRETCH_ORSCANSolabilirSTRETCH_ANDSCANSSTRETCH_DELETESCANS.

Açıklamalar

Bit eşlem genişletme modu, işlevi kullanılarak sıkıştırılmış bit eşlemlerden bilgilerin nasıl kaldırıldığını tanımlar.

BLACKONWHITE(STRETCH_ANDSCANS) ve WHITEONBLACK(STRETCH_ORSCANS) modları genellikle ön plan piksellerini tek renkli bit eşlemlerde korumak için kullanılır. COLORONCOLOR(STRETCH_DELETESCANS) modu genellikle renk bit eşlemlerindeki renkleri korumak için kullanılır.

Mod, HALFTONE diğer üç moddan daha fazla kaynak görüntünün işlenmesini gerektirir; diğerlerinden daha yavaştır, ancak daha kaliteli görüntüler üretir. Ayrıca, SetBrushOrgEx fırçanın yanlış hizalanmasından kaçınmak için modu ayarladıktan HALFTONE sonra çağrılmalıdır.

Cihaz sürücüsünün özelliklerine bağlı olarak daha fazla esnetme modu da kullanılabilir.

CDC::SetTextAlign

Metin hizalama bayraklarını ayarlar.

UINT SetTextAlign(UINT nFlags);

Parametreler

nFlags
Metin hizalama bayraklarını belirtir. Bayraklar, bir nokta ile metni sınırlayan bir dikdörtgen arasındaki ilişkiyi belirtir. Nokta, metin çıkış işlevi tarafından belirtilen geçerli konum veya koordinatlar olabilir. Metni sınırlayan dikdörtgen, metin dizesindeki bitişik karakter hücreleri tarafından tanımlanır. Parametresi, nFlags aşağıdaki üç kategoriden bir veya daha fazla bayrak olabilir. Her kategoriden yalnızca bir bayrak seçin. İlk kategori, x yönünde metin hizalamasını etkiler:

  • TA_CENTER Noktayı sınırlayıcı dikdörtgenin yatay ortasıyla hizalar.

  • TA_LEFT Noktayı sınırlayıcı dikdörtgenin sol tarafıyla hizalar. Bu varsayılan ayardır.

  • TA_RIGHT Noktayı sınırlayıcı dikdörtgenin sağ tarafına hizalar.

İkinci kategori, metin hizalamasını y yönünde etkiler:

  • TA_BASELINE Noktayı, seçilen yazı tipinin temel çizgisiyle hizalar.

  • TA_BOTTOM Noktayı sınırlayıcı dikdörtgenin alt kısmıyla hizalar.

  • TA_TOP Noktayı sınırlayıcı dikdörtgenin üst kısmıyla hizalar. Bu varsayılan ayardır.

Üçüncü kategori, metin yazıldığında geçerli konumun güncelleştirilip güncelleştirilmeyeceğini belirler:

  • TA_NOUPDATECP Bir metin çıkış işlevine yapılan her çağrıdan sonra geçerli konumu güncelleştirmez. Bu varsayılan ayardır.

  • TA_UPDATECP Bir metin çıkış işlevine yapılan her çağrıdan sonra geçerli x konumunu güncelleştirir. Yeni konum, metin için sınırlayıcı dikdörtgenin sağ tarafındadır. Bu bayrak ayarlandığında, üye işlevine TextOut yapılan çağrılarda belirtilen koordinatlar yoksayılır.

Dönüş Değeri

Başarılı olursa, önceki metin hizalama ayarı. Düşük sıralı bayt yatay ayarı, yüksek sıralı bayt ise dikey ayarı içerir; aksi takdirde 0.

Açıklamalar

ve ExtTextOut üye işlevleri, TextOut bir metin dizesini bir görüntüye veya cihaza yerleştirirken bu bayrakları kullanır. Bayraklar, belirli bir nokta ile metni sınırlayan bir dikdörtgen arasındaki ilişkiyi belirtir. Bu noktanın koordinatları üye işlevine TextOut parametre olarak geçirilir. Metni sınırlayan dikdörtgen, metin dizesindeki bitişik karakter hücreleri tarafından oluşturulur.

CDC::SetTextCharacterExtra

Karakter aralığı miktarını ayarlar.

int SetTextCharacterExtra(int nCharExtra);

Parametreler

nCharExtra
Her karaktere eklenecek fazladan alan miktarını (mantıksal birimlerde) belirtir. Geçerli eşleme modu değilse MM_TEXTnCharExtra dönüştürülür ve en yakın piksele yuvarlanir.

Dönüş Değeri

Önceki intercharacter aralığının miktarı.

Açıklamalar

GDI, cihaz bağlamı için bir metin satırı yazdığında kesme karakterleri de dahil olmak üzere her karaktere bu aralığı ekler. Ara karakter aralığı miktarı için varsayılan değer 0'dır.

CDC::SetTextColor

Metin rengini belirtilen renge ayarlar.

virtual COLORREF SetTextColor(COLORREF crColor);

Parametreler

crColor
Metnin rengini RGB renk değeri olarak belirtir.

Dönüş Değeri

Önceki metin rengi için bir RGB değeri.

Açıklamalar

Sistem, bu cihaz bağlamı için metin yazarken ve bit eşlemleri renk ve tek renkli cihaz bağlamları arasında dönüştürürken bu metin rengini kullanır.

Cihaz belirtilen rengi gösteremiyorsa, sistem metin rengini en yakın fiziksel renge ayarlar. Bir karakterin arka plan rengi ve SetBkMode üye işlevleri tarafından SetBkColor belirtilir.

Örnek

örneğine CWnd::OnCtlColorbakın.

CDC::SetTextJustification

Dizedeki kesme karakterlerine boşluk ekler.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Parametreler

nBreakExtra
Metin satırına eklenecek toplam ek alanı belirtir (mantıksal birimlerde). Geçerli eşleme modu değilse MM_TEXT, bu parametre tarafından verilen değer geçerli eşleme moduna dönüştürülür ve en yakın cihaz birimine yuvarlanir.

nBreakCount
Satırdaki kesme karakterlerinin sayısını belirtir.

Dönüş Değeri

İşlev başarılı olursa bir; aksi takdirde 0.

Açıklamalar

Bir uygulama, bir yazı tipinin GetTextMetrics kesme karakterini almak için üye işlevlerini kullanabilir.

SetTextJustification Üye işlevi çağrıldıktan sonra, bir metin çıkış işlevine yapılan çağrı (örneğinTextOut), belirtilen fazladan alanı belirtilen kesme karakteri sayısı arasında eşit olarak dağıtır. Kesme karakteri genellikle boşluk karakteridir (ASCII 32), ancak bir yazı tipi tarafından başka bir karakter olarak tanımlanabilir.

Üye işlevi GetTextExtent genellikle ile SetTextJustificationkullanılır. GetTextExtent hizalamadan önce belirli bir çizginin genişliğini hesaplar. Uygulama, tarafından döndürülen GetTextExtent değeri hizalamadan sonra dizenin genişliğinden çıkararak parametrede ne kadar alan belirtileceğini nBreakExtra belirleyebilir.

işlevi, SetTextJustification farklı yazı tiplerinde birden çok çalıştırma içeren bir satırı hizalamak için kullanılabilir. Bu durumda satır, her çalıştırmayı ayrı ayrı hizalayıp yazarak parça parça oluşturulmalıdır.

Hizalama sırasında yuvarlama hataları oluşabileceğinden sistem, geçerli hatayı tanımlayan çalışan bir hata terimi tutar. Birden çok çalıştırma içeren bir satırı hizalarken, GetTextExtent bir sonraki çalıştırmanın kapsamını hesaplarken otomatik olarak bu hata terimini kullanır. Bu, metin çıkışı işlevinin hatayı yeni çalıştırmayla karıştırmasına olanak tanır.

Her satır hizalandıktan sonra, bir sonraki satıra dahil edilmesini önlemek için bu hata terimi temizlenmelidir. Terim, 0 olarak ayarlanmış olarak çağrılarak SetTextJustification nBreakExtra temizlenebilir.

CDC::SetViewportExt

Cihaz bağlamının görünüm penceresi x ve y uzantılarını ayarlar.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Parametreler

cx
Görünüm penceresi x kapsamını belirtir (cihaz birimlerinde).

cy
Görünüm penceresi y kapsamını belirtir (cihaz birimlerinde).

size
Görünüm penceresi x ve y uzantılarını belirtir (cihaz birimlerinde).

Dönüş Değeri

Nesne olarak CSize görünüm penceresi önceki kapsamları. Bir hata oluştuğunda, döndürülen CSize nesnenin x ve y koordinatları 0 olarak ayarlanır.

Açıklamalar

Görünüm penceresi, cihaz bağlamı penceresiyle birlikte GDI'nin mantıksal koordinat sistemindeki noktaları gerçek cihazın koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar. Başka bir deyişle, GDI'nin mantıksal koordinatları cihaz koordinatlarına nasıl dönüştürdüğünü tanımlar.

Aşağıdaki eşleme modları ayarlandığında ve SetViewportExt çağrıları SetWindowExt yoksayılır:

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

MM_ISOTROPIC Mod ayarlandığında, bir uygulamanın çağrısından önce üye işlevini çağırması SetWindowExt SetViewportExtgerekir.

Örnek

örneğine CView::OnPrepareDCbakın.

CDC::SetViewportOrg

Cihaz bağlamının görünüm penceresi kaynağını ayarlar.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Parametreler

x
Görünüm penceresi kaynağının x koordinatını (cihaz birimlerinde) belirtir. Değer, cihaz koordinat sisteminin aralığında olmalıdır.

y
Görünüm penceresi kaynağının y koordinatını (cihaz birimlerinde) belirtir. Değer, cihaz koordinat sisteminin aralığında olmalıdır.

point
Görünüm penceresi kaynağını belirtir. Değerler, cihaz koordinat sisteminin aralığında olmalıdır. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

Nesne olarak CPoint görünüm noktasının önceki çıkış noktası (cihaz koordinatlarında).

Açıklamalar

Görünüm penceresi, cihaz bağlamı penceresiyle birlikte GDI'nin mantıksal koordinat sistemindeki noktaları gerçek cihazın koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar. Başka bir deyişle, GDI'nin mantıksal koordinatları cihaz koordinatlarına nasıl dönüştürdüğünü tanımlar.

Görünüm penceresi başlangıcı, cihaz koordinat sistemindeki GDI'nin pencere kaynağını eşlediği noktayı, üye işlevi tarafından SetWindowOrg belirtilen mantıksal koordinat sisteminde bir noktayı işaretler. GDI, pencere kaynağını görünüm penceresi kaynağıyla eşlemek için gereken işlemi izleyerek diğer tüm noktaları eşler. Örneğin, pencere kaynağındaki noktanın etrafındaki bir daire içindeki tüm noktalar, görünüm penceresi kaynağındaki noktanın etrafındaki bir daire içinde olur. Benzer şekilde, pencere kaynağından geçen bir satırdaki tüm noktalar, görünüm penceresi kaynağından geçen bir satırda olur.

Örnek

örneğine CView::OnPrepareDCbakın.

CDC::SetWindowExt

Cihaz bağlamıyla ilişkili pencerenin x ve y uzantılarını ayarlar.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Parametreler

cx
Pencerenin x uzantısını (mantıksal birimlerde) belirtir.

cy
Pencerenin y uzantısını (mantıksal birimlerde) belirtir.

size
Pencerenin x ve y uzantılarını (mantıksal birimlerde) belirtir.

Dönüş Değeri

Pencerenin nesne olarak CSize önceki uzantıları (mantıksal birimlerde). Hata oluşursa, döndürülen CSize nesnenin x ve y koordinatları 0 olarak ayarlanır.

Açıklamalar

Pencere, cihaz bağlamı görünüm penceresiyle birlikte, GDI'nin mantıksal koordinat sistemindeki noktaları cihaz koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar.

Aşağıdaki eşleme modları ayarlandığında ve SetViewportExt işlevleri çağrıları SetWindowExt yoksayılır:

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

MM_ISOTROPIC Mod ayarlandığında, bir uygulamanın çağrısından önce üye işlevini çağırması SetWindowExt SetViewportExtgerekir.

Örnek

örneğine CView::OnPrepareDCbakın.

CDC::SetWindowOrg

Cihaz bağlamının pencere kaynağını ayarlar.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Parametreler

x
Pencerenin yeni kaynağının mantıksal x koordinatını belirtir.

y
Pencerenin yeni kaynağının mantıksal y koordinatını belirtir.

point
Pencerenin yeni kaynağının mantıksal koordinatlarını belirtir. Bu parametre için bir POINT yapı veya CPoint nesne geçirebilirsiniz.

Dönüş Değeri

Pencerenin nesne olarak CPoint önceki çıkış noktası.

Açıklamalar

Pencere, cihaz bağlamı görünüm penceresiyle birlikte, GDI'nin mantıksal koordinat sistemindeki noktaları cihaz koordinat sistemindeki noktalarla nasıl eşleyeni tanımlar.

Pencere başlangıcı, GDI'nin işlev tarafından SetWindowOrg belirtilen cihaz koordinat sistemindeki bir nokta olan görünüm penceresi kaynağını eşlediği mantıksal koordinat sisteminde noktayı işaretler. GDI, pencere kaynağını görünüm penceresi kaynağıyla eşlemek için gereken işlemi izleyerek diğer tüm noktaları eşler. Örneğin, pencere kaynağındaki noktanın etrafındaki bir daire içindeki tüm noktalar, görünüm penceresi kaynağındaki noktanın etrafındaki bir daire içinde olur. Benzer şekilde, pencere kaynağından geçen bir satırdaki tüm noktalar, görünüm penceresi kaynağından geçen bir satırda olur.

CDC::SetWorldTransform

Belirtilen cihaz bağlamı için dünya alanı ve sayfa alanı arasında iki boyutlu bir doğrusal dönüşüm ayarlar. Bu dönüştürme grafik çıktısını ölçeklendirmek, döndürmek, yamyamak veya çevirmek için kullanılabilir.

BOOL SetWorldTransform(const XFORM& rXform);

Parametreler

rXform
Dönüştürme verilerini içeren bir XFORM yapıya başvuru.

Dönüş Değeri

Başarıda sıfır olmayan bir değer döndürür.

Hata durumunda 0 döndürür.

Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.

Açıklamalar

Bu yöntem, Windows GDI işlevini SetWorldTransformsarmalar.

CDC::StartDoc

Cihaz sürücüsüne yeni bir yazdırma işinin başlatıldığını ve bir çağrı gerçekleşene kadar EndDoc tüm izleyen StartPage ve EndPage çağrıların aynı iş altında biriktirilmesi gerektiğini bildirir.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Parametreler

lpDocInfo
Belge dosyasının adını ve çıkış dosyasının adını içeren bir DOCINFO yapıyı gösterir.

lpszDocName
Belge dosyasının adını içeren bir dize işaretçisi.

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri sıfırdan büyük olur. Bu değer, belgenin yazdırma işi tanımlayıcısıdır.

İşlev başarısız olursa, dönüş değeri sıfırdan küçük veya sıfıra eşit olur.

Açıklamalar

Bu, birden fazla sayfadan uzun belgelerin diğer işlerle kesişmesini sağlamaz.

Windows 3.1 ve üzeri sürümler için bu işlev yazıcı çıkışının STARTDOC yerini alır. Bu işlevin kullanılması, birden fazla sayfa içeren belgelerin diğer yazdırma işleriyle kesişmesini sağlamaz.

StartDoc meta dosyaları içinde kullanılmamalıdır.

Örnek

Bu kod parçası varsayılan yazıcıyı alır, bir yazdırma işi açar ve üzerinde "Hello, World!" bulunan bir sayfa biriktirir. Bu kod tarafından yazdırılan metin yazıcının mantıksal birimlerine ölçeklendirilmediğinden, çıkış metni o kadar küçük harflerle olabilir ki sonuç okunamaz. Ölçeklendirmeyi düzeltmek için , SetViewportOrgve SetWindowExtgibi SetMapModeCDC ölçeklendirme işlevleri kullanılabilir.

void CDCView::DoStartDoc()
{
   // get the default printer
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();

   // is a default printer set up?
   HDC hdcPrinter = dlg.GetPrinterDC();
   if (hdcPrinter == NULL)
   {
      MessageBox(_T("Buy a printer!"));
   }
   else
   {
      // create a CDC and attach it to the default printer
      CDC dcPrinter;
      dcPrinter.Attach(hdcPrinter);

      // call StartDoc() to begin printing
      DOCINFO docinfo;
      memset(&docinfo, 0, sizeof(docinfo));
      docinfo.cbSize = sizeof(docinfo);
      docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");

      // if it fails, complain and exit gracefully
      if (dcPrinter.StartDoc(&docinfo) < 0)
      {
         MessageBox(_T("Printer wouldn't initialize"));
      }
      else
      {
         // start a page
         if (dcPrinter.StartPage() < 0)
         {
            MessageBox(_T("Could not start page"));
            dcPrinter.AbortDoc();
         }
         else
         {
            // actually do some printing
            CGdiObject *pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

            dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);

            dcPrinter.EndPage();
            dcPrinter.EndDoc();
            dcPrinter.SelectObject(pOldFont);
         }
      }
   }
}

CDC::StartPage

Yazıcı sürücüsünü veri almaya hazırlamak için bu üye işlevini çağırın.

int StartPage();

Dönüş Değeri

İşlev başarılı olursa 0'dan büyük veya buna eşit veya hata oluşursa negatif bir değer.

Açıklamalar

StartPageve BANDINFO kaçışlarının NEWFRAME yerini alır.

Yazdırma çağrıları dizisine genel bakış için üye işlevine StartDoc bakın.

Sistem, ve EndPageçağrıları ResetDC StartPage arasında üye işlevini devre dışı bırakır.

Örnek

örneğine CDC::StartDocbakın.

CDC::StretchBlt

Bir bit eşlemi kaynak dikdörtgenden hedef dikdörtgene kopyalar ve gerekirse, bit eşlem öğesini hedef dikdörtgenin boyutlarına uyacak şekilde uzatır veya sıkıştırır.

BOOL StretchBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    DWORD dwRop);

Parametreler

x
Hedef dikdörtgenin sol üst köşesinin x koordinatını (mantıksal birimler cinsinden) belirtir.

y
Hedef dikdörtgenin sol üst köşesinin y koordinatını (mantıksal birimler cinsinden) belirtir.

nWidth
Hedef dikdörtgenin genişliğini (mantıksal birimler cinsinden) belirtir.

nHeight
Hedef dikdörtgenin yüksekliğini (mantıksal birimler cinsinden) belirtir.

pSrcDC
Kaynak cihaz bağlamını belirtir.

xSrc
Kaynak dikdörtgenin sol üst köşesinin x koordinatını (mantıksal birimler cinsinden) belirtir.

ySrc
Kaynak dikdörtgenin sol üst köşesinin y koordinatını (mantıksal birimler cinsinden) belirtir.

nSrcWidth
Kaynak dikdörtgenin genişliğini (mantıksal birimler cinsinden) belirtir.

nSrcHeight
Kaynak dikdörtgenin yüksekliğini (mantıksal birimler cinsinden) belirtir.

dwRop
Gerçekleştirilecek ızgara işlemini belirtir. Izgara işlemi kodları, GDI'nin geçerli fırça, olası bir kaynak bit eşlem ve hedef bit eşlem içeren çıkış işlemlerinde renkleri nasıl birleştirdiğini tanımlar. Bu parametre aşağıdaki değerlerden biri olabilir:

  • BLACKNESS Tüm çıkışı siyaha çevirir.

  • DSTINVERT Hedef bit eşlemi tersine çevirir.

  • MERGECOPY Boolean AND işlecini kullanarak deseni ve kaynak bit eşlemini birleştirir.

  • MERGEPAINT Boolean OR işlecini kullanarak ters çevrilmiş kaynak bit eşlemini hedef bit eşlem ile birleştirir.

  • NOTSRCCOPY Ters çevrilmiş kaynak bit eşlemini hedefe kopyalar.

  • NOTSRCERASEBoole or işlecini kullanarak hedef ve kaynak bit eşlemleri birleştirmenin sonucunu tersine çevirir.

  • PATCOPY Deseni hedef bit eşlemine kopyalar.

  • PATINVERTBoole XOR işlecini kullanarak hedef bit eşlemi desenle birleştirir.

  • PATPAINTBoole veya işlecini kullanarak ters çevrilmiş kaynak bit eşlemini desenle birleştirir. Boolean OR işlecini kullanarak bu işlemin sonucunu hedef bit eşlem ile birleştirir.

  • SRCAND Boolean AND işlecini kullanarak hedef ve kaynak bit eşlemlerin piksellerini birleştirir.

  • SRCCOPY Kaynak bit eşlemi hedef bit eşlemine kopyalar.

  • SRCERASE Hedef bit eşlemi tersine çevirir ve Boolean AND işlecini kullanarak sonucu kaynak bit eşlem ile birleştirir.

  • SRCINVERTBoole XOR işlecini kullanarak hedef ve kaynak bit eşlemlerin piksellerini birleştirir.

  • SRCPAINT Boolean OR işlecini kullanarak hedef ve kaynak bit eşlemlerin piksellerini birleştirir.

  • WHITENESS Tüm çıkışı beyaza çevirir.

Dönüş Değeri

Bit eşlem çizilirse sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

İşlev, bit eşlemi genişletmeyi veya sıkıştırmayı belirlemek için hedef cihaz bağlamının (tarafından SetStretchBltModeayarlanır) esnetme modunu kullanır.

İşlev, StretchBlt bit eşlemi tarafından pSrcDC verilen kaynak cihazdan, üye işlevi çağrılan cihaz bağlamı nesnesi tarafından temsil edilen hedef cihaza taşır. xSrc, ySrc, nSrcWidthve nSrcHeight parametreleri, sol üst köşeyi ve kaynak dikdörtgenin boyutlarını tanımlar. x, y, nWidthve nHeight parametreleri, sol üst köşeyi ve hedef dikdörtgenin boyutlarını verir. tarafından dwRop belirtilen raster işlemi, hedef cihazda zaten bulunan kaynak bit eşlem ve bitlerin nasıl birleştirildiği tanımlar.

ve StretchBlt parametrelerinin işaretleri farklıysa işlev bit eşleminin nSrcHeight nSrcWidth nWidth nHeight yansıtma görüntüsünü oluşturur. ve nWidth farklı işaretlere sahipsenSrcWidth, işlev x ekseni boyunca bit eşleminin bir yansıtma görüntüsünü oluşturur. ve nHeight farklı işaretlere sahipsenSrcHeight, işlev y ekseni boyunca bit eşleminin bir yansıtma görüntüsünü oluşturur.

İşlev, StretchBlt kaynak bit eşlemi bellekte genişletir veya sıkıştırır ve ardından sonucu hedefe kopyalar. Bir desen sonuçla birleştirilecekse, esnetilmiş kaynak bit eşlem hedefe kopyalanana kadar birleştirilmeyecektir. Bir fırça kullanılıyorsa, hedef cihaz bağlamında seçili fırçadır. Hedef koordinatları hedef cihaz bağlamına göre dönüştürülür; kaynak koordinatları kaynak cihaz bağlamına göre dönüştürülür.

Hedef, kaynak ve desen bit eşlemleri aynı renk biçimine sahip değilse, StretchBlt kaynak ve desen bit eşlemlerini hedef bit eşlemlerle eşleşecek şekilde dönüştürür. Hedef cihaz bağlamının ön plan ve arka plan renkleri dönüşümde kullanılır.

StretchBlt Tek renkli bit eşlemi renge dönüştürmesi gerekiyorsa, beyaz bitleri (1) arka plan rengine, siyah bitleri (0) ön plan rengine ayarlar. Renkliyi tek renkliye dönüştürmek için, arka plan rengiyle uyuşan pikselleri beyaz (1) olarak ve tüm diğer pikselleri de siyah (0) olarak ayarlar. Renkli cihaz bağlamının ön plan ve arka plan renkleri kullanılır.

Tüm cihazlar işlevi desteklemez StretchBlt . Bir cihazın destekleyip desteklemediğini StretchBltbelirlemek içinRC_STRETCHBLT, üye işlevini dizinle çağırın GetDeviceCaps RASTERCAPS ve bayrağının dönüş değerini denetleyin.

CDC::StrokeAndFillPath

Bir yoldaki açık şekilleri kapatır, geçerli kalemi kullanarak yolun ana hattını konturlar ve geçerli fırçayı kullanarak iç kısmını doldurur.

BOOL StrokeAndFillPath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Cihaz bağlamı kapalı bir yol içermelidir. StrokeAndFillPath Üye işlevi, yoldaki tüm açık şekilleri kapatma ve yolu ayrı olarak okşama ve doldurma ile aynı etkiye sahiptir, ancak kalem geniş olsa bile dolgulu bölge konturlu bölgeyle çakışmaz.

CDC::StrokePath

Geçerli kalemi kullanarak belirtilen yolu işler.

BOOL StrokePath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Cihaz bağlamı kapalı bir yol içermelidir.

CDC::TabbedTextOut

Sekmeleri sekme durağı konumları dizisinde belirtilen değerlere genişleterek belirtilen konuma bir karakter dizesi yazmak için bu üye işlevini çağırın.

virtual CSize TabbedTextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

CSize TabbedTextOut(
    int x,
    int y,
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

Parametreler

x
Dizenin başlangıç noktasının mantıksal x koordinatını belirtir.

y
Dizenin başlangıç noktasının mantıksal y koordinatını belirtir.

lpszString
Çizecek karakter dizesini gösterir. Bu parametre için bir karakter dizisine veya nesneye işaretçi CString geçirebilirsiniz.

nCount
tarafından lpszStringişaret edilen dizenin uzunluğunu belirtir.

nTabPositions
Sekme durağı konumları dizisindeki değerlerin sayısını belirtir.

lpnTabStopPositions
Sekme durağı konumlarını içeren bir diziye işaret eder (mantıksal birimlerde). Sekme durakları artan düzende sıralanmalıdır; en küçük x değeri dizideki ilk öğe olmalıdır.

nTabOrigin
Sekmelerin genişletildiği başlangıç konumunun x koordinatını belirtir (mantıksal birimlerde).

str
CString Belirtilen karakterleri içeren bir nesne.

Dönüş Değeri

Dizenin (mantıksal birimlerde) bir CSize nesne olarak boyutları.

Açıklamalar

Metin, seçili durumdaki yazı tipinde yazılır. nTabPositions 0 ve lpnTabStopPositions iseNULL, sekmeler ortalama karakter genişliğinin sekiz katına genişletilir.

1 ise nTabPositions , sekme durakları dizideki ilk değerle lpnTabStopPositions belirtilen uzaklık ile ayrılır. lpnTabStopPositions Dizi birden fazla değer içeriyorsa, dizideki her değer için tarafından nTabPositionsbelirtilen sayıya kadar bir sekme durağı ayarlanır. parametresi, nTabOrigin bir uygulamanın işlevi tek bir satır için birkaç kez çağırmasına TabbedTextOut olanak tanır. Uygulama, işlevi her seferinde aynı değere ayarlanmış şekilde birden çok kez nTabOrigin çağırırsa, işlevi tarafından nTabOriginbelirtilen konuma göre tüm sekmeleri genişletir.

Varsayılan olarak, geçerli konum işlev tarafından kullanılmaz veya güncelleştirilmez. Bir uygulamanın işlevi çağırdığında geçerli konumu güncelleştirmesi gerekiyorsa, uygulama olarak ayarlanmış TA_UPDATECPüye işlevini nFlags çağırabilirSetTextAlign. Bu bayrak ayarlandığında, Windows bunun yerine geçerli konumu kullanarak sonraki çağrısında TabbedTextOutve y parametrelerini yoksayarx.

CDC::TextOut

O anda seçili yazı tipini kullanarak belirtilen konumda bir karakter dizesi yazar.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Parametreler

x
Metnin başlangıç noktasının mantıksal x koordinatını belirtir.

y
Metnin başlangıç noktasının mantıksal y koordinatını belirtir.

lpszString
Çizilecek karakter dizesine işaret eder.

nCount
Dizedeki karakter sayısını belirtir.

str
CString Çizilecek karakterleri içeren bir nesne.

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Karakter başlangıç noktaları karakter hücresinin sol üst köşesindedir. Varsayılan olarak, geçerli konum işlev tarafından kullanılmaz veya güncelleştirilmez.

Bir uygulamanın çağırdığında TextOutgeçerli konumu güncelleştirmesi gerekiyorsa, uygulama olarak ayarlanmış TA_UPDATECPüye işlevini nFlags çağırabilirSetTextAlign. Bu bayrak ayarlandığında, Windows bunun yerine geçerli konumu kullanarak sonraki çağrısında TextOutve y parametrelerini yoksayarx.

Örnek

örneğine CDC::BeginPathbakın.

CDC::TransparentBlt

Belirtilen kaynak cihaz bağlamındaki piksel dikdörtgenine karşılık gelen renk verilerinin bit bloğunu hedef cihaz bağlamı içine aktarmak için bu üye işlevini çağırın.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Parametreler

xDest
Hedef dikdörtgenin sol üst köşesindeki x koordinatını mantıksal birimler halinde belirtir.

yDest
Hedef dikdörtgenin sol üst köşesinin mantıksal birimlerde y koordinatını belirtir.

nDestWidth
Hedef dikdörtgenin genişliğini mantıksal birimler halinde belirtir.

nDestHeight
Hedef dikdörtgenin yüksekliğini mantıksal birimlerde belirtir.

pSrcDC
Kaynak cihaz bağlamı işaretçisi.

xSrc
Kaynak dikdörtgenin mantıksal birimlerinde x koordinatını belirtir.

ySrc
Kaynak dikdörtgenin mantıksal birimlerinde y koordinatını belirtir.

nSrcWidth
Kaynak dikdörtgenin genişliğini mantıksal birimler halinde belirtir.

nSrcHeight
Kaynak dikdörtgenin yüksekliğini mantıksal birimler halinde belirtir.

clrTransparent
Saydam olarak ele almak için kaynak bit eşlemdeki RGB rengi.

Dönüş Değeri

TRUE başarılı olursa; aksi takdirde FALSE.

Açıklamalar

TransparentBlt saydamlık sağlar; diğer bir ifadeyle, tarafından clrTransparent belirtilen RGB rengi aktarım için saydam olarak işlenir.

Daha fazla bilgi için bkz TransparentBlt . Windows SDK'sı.

CDC::UpdateColors

İstemci alanındaki geçerli renkleri piksel piksel temelinde sistem paleti ile eşleştirerek cihaz bağlamının istemci alanını güncelleştirir.

void UpdateColors();

Açıklamalar

Gerçekleştirilmiş mantıksal paleti olan etkin olmayan bir pencere, sistem paleti değiştiğinde istemci alanını yeniden çizmek için alternatif olarak çağırabilir UpdateColors .

Renk paletlerini kullanma hakkında daha fazla bilgi için bkz UpdateColors . Windows SDK'sı.

Üye UpdateColors işlevi genellikle bir istemci alanını alanı yeniden çizmekten daha hızlı güncelleştirir. Ancak işlev, sistem paleti değiştirilmeden önce her pikselin rengine göre renk çevirisi gerçekleştirdiğinden, bu işleve yapılan her çağrı bazı renk doğruluğu kaybına neden olur.

CDC::WidenPath

Geçerli yolu, cihaz bağlamında seçili durumdaki kalem kullanılarak yol konturlanmışsa boyanacak alan olarak yeniden tanımlar.

BOOL WidenPath();

Dönüş Değeri

İşlev başarılı olursa sıfır dışında bir değer, aksi durumda 0.

Açıklamalar

Bu işlev yalnızca geçerli kalem üye işlevinin ikinci sürümü CreatePen tarafından oluşturulan geometrik bir kalemse veya kalem ilk sürümüyle CreatePen oluşturulduysa ve cihaz birimlerinde 1'den büyük bir genişliğe sahipse başarılı olur. Cihaz bağlamı kapalı bir yol içermelidir. Yoldaki tüm Bzier eğrileri, genişleyen eğrileri yaklaşık olarak gösteren düz çizgi dizilerine dönüştürülür. Bu nedenle, çağrıldıktan sonra WidenPath hiçbir Bzier eğrisi yolda kalmaz.

Ayrıca bkz.

CObject Sınıf
Hiyerarşi Grafiği
CPaintDC Sınıf
CWindowDC Sınıf
CClientDC Sınıf
CMetaFileDC Sınıf