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 SaveDC kaydedilmiş ö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. CPaintDC
ve 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
SetLayout
bir 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_hAttribDC
bir 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_hAttribDC
yö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 CDC
daha fazla bilgi için bkz . Cihaz Bağlamları.
Devralma Hiyerarşisi
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
SetAbortProc
bir durdurma işlevi belirtmeyen yazdırma işlemleri.Henüz ilk
NEWFRAME
veyaNEXTBAND
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 CDC
veya 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::StartDoc
bakı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_hDC
de 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 AfxRegisterWndClass
kullanı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 BitBlt
denetlemek için üye işlevini kullanın ve RASTERCAPS dizinini belirtin.
Örnek
örneğine CDC::CreateCompatibleDC
bakı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 ( , x2
y2
) 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
- x1
anlamı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 CloseFigure
kullanı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 pDC
belirtilen 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::GetDeviceCaps
raster ö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::GetDC
elde 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 , CreateIC
veya CreateCompatibleDC
ile CreateDC
oluşturulan cihaz bağlamlarını silmek için kullanılır.
Örnek
örneğine CPrintDialog::GetPrinterDC
bakın.
CDC::DeleteTempMap
Boşta kalma zamanı işleyicisi tarafından CWinApp
otomatik olarak çağrılır, DeleteTempMap
tarafından FromHandle
oluşturulan geçici CDC
nesneleri siler, ancak nesnelerle CDC
geçici olarak ilişkili cihaz bağlam tutamaçlarını (hDC
tanıtıcılarını) 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 NULL
bu işlevi çağırınCDC
.
HDC Detach();
Dönüş Değeri
Windows cihaz bağlamı.
CDC::DPtoHIMETRIC
Ole'ye boyut verirseniz HIMETRIC
pikselleri HIMETRIC
değ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_LOENGLISH
eşleme modu , MM_HIENGLISH
, MM_LOMETRIC
veya MM_HIMETRIC
ise 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 clrBottomRight
ise 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 DrawDragRect
lpRectLast
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 DrawEscape
ve 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 nState
arasındaki ilişki gösterilmektedir:
DFC_BUTTON
DFCS_BUTTON3STATE
Üç durumlu düğmeDFCS_BUTTONCHECK
Onay kutusuDFCS_BUTTONPUSH
DüğmeDFCS_BUTTONRADIO
Seçenek düğmesiDFCS_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üğmesiDFCS_CAPTIONHELP
Yardım düğmesiDFCS_CAPTIONMAX
Ekranı Kapla düğmesiDFCS_CAPTIONMIN
Simge Durumuna Küçült düğmesiDFCS_CAPTIONRESTORE
Geri Yükle düğmesi
DFC_MENU
DFCS_MENUARROW
Alt menü okuDFCS_MENUBULLET
MermiDFCS_MENUCHECK
Onay işareti
DFC_SCROLL
DFCS_SCROLLCOMBOBOX
Birleşik giriş kutusu kaydırma çubuğuDFCS_SCROLLDOWN
Kaydırma çubuğunun aşağı okuDFCS_SCROLLLEFT
Kaydırma çubuğunun sol okuDFCS_SCROLLRIGHT
Kaydırma çubuğunun sağ okuDFCS_SCROLLSIZEGRIP
Pencerenin sağ alt köşesindeki boyut kavramaDFCS_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 y
tarafından x
belirtilen konuma yerleştirir. Konum, cihaz bağlamının geçerli eşleme moduna tabidir.
Simge kaynağı daha önce , CWinApp::LoadStandardIcon
veya CWinApp::LoadOEMIcon
işlevleri CWinApp::LoadIcon
kullanılarak yüklenmiş olmalıdır. Bu MM_TEXT
işlev kullanmadan önce eşleme modu seçilmelidir.
Örnek
örneğine CWnd::IsIconic
bakı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 lpszText
iş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_COMPLEX
parametre gereklidir. İsteğe bağlıdır ve görüntü türü ise DST_TEXT
olabilirNULL
. 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_NOCLIP
DT_INTERNAL
ve DT_NOPREFIX
değerleri DT_CALCRECT
değ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 nFormat
belirtilir.
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::SetTextColor
ayarlanabilir.
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_NOCLIP
DT_INTERNAL
ve DT_NOPREFIX
değerleri DT_CALCRECT
değ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 lpDTParams
tarafı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::SetTextColor
ayarlanabilir.
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, , , x2
y1
ve y2
veya lpRect
tarafından x1
belirtilen 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
- x1
anlamı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 AbortDoc
kullanarak 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::StartDoc
bakı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::StartDoc
bakı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::BeginPath
bakı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_PEN
değ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 EnumObjects
olanak 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 MakeProcInstance
kullanı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 lpszInData
iş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
- x1
belirtilen 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 nFillType
bağ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 renklecrColor
sınırlanır. Bu stil, tarafındanFloodFill
gerçekleştirilen dolgu ile aynıdır.FLOODFILLSURFACE
Dolgu alanı tarafındancrColor
belirtilen 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 nFillType
bir doldurma türü belirtebileceğinizden daha FloodFill
fazla esneklik sunar.
olarak ayarlanırsa nFillType
FLOODFILLBORDER
, alanın tarafından crColor
belirtilen 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 crColor
rengi 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şlevleriyleSetBkColor
geçerli arka plan rengini ayarlayabilir veGetBkColor
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 ExtTextOut
geç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 lpDxWidths
belirtilen 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, , CreatePatternBrush
ve CreateSolidBrush
üye işlevleri CreateHatchBrush
kullanı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
, left
ve right
üyelerinin değerlerini karşılaştırır. bottom
değerinden küçük veya eşitse top
ya da değerinden küçük veya eşitse right
left
dikdö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 FillSolidRect
yavaştır.
CDC::FillRgn
tarafından pRgn
belirtilen bölgeyi tarafından pBrush
belirtilen 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 , CreateSolidBrush
CreatePatternBrush
üye işlevleri CreateHatchBrush
kullanılarak CBrush
oluşturulmalı veya tarafından GetStockObject
alınmalıdır.
Örnek
örneğine CRgn::CreateRoundRectRgn
bakı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 FillRect
daha hızlıdır.
Not
çağrısı FillSolidRect
yaptığınızda, daha önce kullanılarak SetBkColor
ayarlanan arka plan rengi tarafından clr
belirtilen 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 crColor
belirtilen sınır rengine sahiptir veya nokta kırpma bölgesinin dışındadır.
Açıklamalar
alanının tarafından crColor
belirtildiğ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 lpRect
belirtilen 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 top
ya da değerinden küçük veya buna eşitse right
left
dikdö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 FrameRect
doldurulmuyor.
CDC::FrameRgn
tarafından pBrush
belirtilen 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::CombineRgn
bakı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::GetPrinterDC
bakı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 TRANSPARENT
olabilecek 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 GetCharacterPlacement
iş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
NULL
kullanılır.
cgi
Glif dizinlerinin sayısını belirtir.
pgi
Karakter dizinleri içeren bir dizi işaretçisi. değer ise NULL
parametresi 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 GetCharABCWidthsI
iş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 lpBuffer
arabellekteki 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
NULL
kullanılır.
cgi
Glif dizinlerinin sayısını belirtir.
pgi
Karakter dizinleri içeren bir dizi işaretçisi. değer ise NULL
parametresi 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 GetCharWidthI
iş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 lpRect
iş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 GetDCBrushColor
iş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 GetDCPenColor
kullanı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::GetDefaults
bakı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 , dwOffset
ve cbData
parametreleri için 0 belirterek yazı tipi dosyasının dwTable
tamamı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 GetFontLanguageInfo
iş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 nFormat
belirtildiğinde GGO_NATIVE
bile bu parametre olamazNULL
.
Dönüş Değeri
0 veya lpBuffer
NULL
isecbBuffer
, 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 lpmat2
edilen 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 GetGraphicsMode
sarmalar.
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:
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 lpkrnpair
işaret edilen yapı sayısını KERNINGPAIR
belirtir. işlevi tarafından nPairs
belirtilenden 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 nPairs
belirtilen 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_ISOTROPIC
değ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 NULL
iş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 NULL
iş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_hDC
kullanı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 lpBuffer
arabellekteki 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_hDC
bir 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 lpszString
işaret edilen dizenin uzunluğunu belirtir.
nTabPositions
tarafından işaret edilen lpnTabStopPositions
dizideki 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 lpnTabStopPositions
belirtilen 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 nTabPositions
belirtilen sayıya kadar bir sekme durağı ayarlanır.
CDC::GetOutputTextExtent
Çıkış cihazı bağlamını m_hDC
kullanmak 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 lpszString
iş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 GetOutputTextExtent
dö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_hDC
geç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ınlpPoints
kopuk bir şekil başlattığını belirtir.PT_LINETO
önceki noktanın ve buna karşılık gelen noktanınlpPoints
bir satırın uç noktaları olduğunu belirtir.PT_BEZIERTO
içindekilpPoints
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 sonPT_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::BeginPath
bakı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_hDC
iç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_DELETESCANS
veya 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_hAttribDC
bir 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 lpszString
işaret edilen dizenin uzunluğunu belirtir.
nTabPositions
tarafından işaret edilen lpnTabStopPositions
dizideki 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 lpnTabStopPositions
belirtilen 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 nTabPositions
belirtilen 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:
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_CENTER
veTA_RIGHT
TA_BASELINE
,TA_BOTTOM
veTA_TOP
TA_NOUPDATECP
veTA_UPDATECP
C++ bit düzeyinde AND (
&
) işlecini sonucuna ve dönüş değerineGetTextAlign
uygulayın.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
, ExtTextOut
ve TabbedTextOut
kullanı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_hAttribDC
alı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 GetTextExtent
dö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 pgiIn
iş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 nMaxExtent
belirtilen alana sığacak karakter sayısı üst sınırını alan bir tamsayı işaretçisi. olduğunda lpnFit
NULL
nMaxExtent
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 nMaxExtent
belirtilen alana uyan karakterlerden biri arasındaki uzaklığı mantıksal birimler halinde verir. Bu dizi, tarafından cgi
belirtilen glif dizinleri kadar en az sayıda öğeye sahip olmalıdır, ancak işlevi tarafından belirtilen lpnFit
sayı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 GetTextExtentExPointI
iş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 pgiIn
iş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 GetTextExtentPointI
iş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 GetWorldTransform
sarmalar.
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_GRAYTEXT
almak 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ı __declspec
aktarı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_LOENGLISH
eşleme modu , MM_HIENGLISH
MM_LOMETRIC
veya MM_HIMETRIC
ise 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
, x2
ve y2
tarafından x1
belirtilen 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 pRgn
belirtilen 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
point
veya olarak ayarlanırx
.
Örnek
örneğine CRect::CenterPoint
bakı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_hDC
eşittir. Genel olarak, CDC
cihaz bağlamından bilgi isteyen GDI çağrıları adresine m_hAttribDC
yö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 CDC
diğ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 BitBlt
davranı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 MaskBlt
kolayca 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 ModifyWorldTransform
sarmalar.
CDC::MoveTo
Geçerli konumu ve y
(veya point
tarafı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::CenterPoint
bakı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.PATINVERT
Boole 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 PatBlt
belirlemek 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, x2
y1
ve y2
(veya lpRect
tarafından) tarafından x1
belirtilen sınırlayıcı dikdörtgenin merkezidir. Yayının başlangıç ve bitiş noktaları , , x4
y3
ve y4
(veya ve ptEnd
) ile x3
ptStart
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 (x4
x3
, y4
y3
) öğ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
- x1
anlamı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::BeginPath
bakı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_CLOSEFIGURE
Bu nokta için veyaPT_BEZIERTO
türü tamamlandıktan sonra şeklinPT_LINETO
otomatik olarak kapatıldığını belirtir. Bu noktadan en sonPT_MOVETO
noktaya veyaMoveTo
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::LineTo
ve CDC::PolyBezierTo
üye işlevlerine ardışık çağrılar yerine kopuk şekiller çizmek için CDC::MoveTo
kullanı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::LineTo
veya 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::BeginPath
bakı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 lpPoints
belirtilen 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 lpPoints
belirtilen 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 RealizePalette
Windows, 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
- x1
anlamı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 NULL
iş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 nSavedDC
tanı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
- x1
anlamı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 RestoreDC
cihaz bağlamını geri yüklemek için kullanılabilir.
Açıklamalar
Kaydedilen cihaz bağlamı daha sonra kullanılarak RestoreDC
geri 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. NULL
değ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ındanpRgn
tanımlanan bölgeyi birleştirir.RGN_COPY
Yeni kırpma bölgesi, tarafındanpRgn
tanımlanan bölgenin bir kopyasıdır. Bu işlev, ilk sürümüyleSelectClipRgn
aynıdır. tarafındanpRgn
tanımlanan bölge iseNULL
, 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ındanpRgn
tanımlanan bölgeden dışlanan alanlarla birleştirir.RGN_OR
Yeni kırpma bölgesi, geçerli kırpma bölgesini ve tarafındanpRgn
tanımlanan bölgeyi birleştirir.RGN_XOR
Yeni kırpma bölgesi geçerli kırpma bölgesini ve tarafındanpRgn
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 CGdiObject
birinin 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 pObject
belirtilen 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 pPalette
belirtilen 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üvenmemekSYSTEM_FONT
en iyisidir. Bunun yerine, geçerli yazı tipini almak için parametresiyleSPI_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
, CBrush
veya 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::SetAbortProc
Geri Ç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ı SetAbortProc
basitleş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::OnCtlColor
bakı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ındanlpRectBounds
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 SetBrushOrg
ve 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 SetDCBrushColor
iş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 SetDCPenColor
kullanı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 SetGraphicsMode
sarmalar.
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_RTLREADING
geniş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ı SetLayout
yapmaktır.
çağrısı SetLayout(LAYOUT_RTL)
yaparsanız, SetLayout
eşleme modunu otomatik olarak olarak MM_ISOTROPIC
olarak 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_BITMAPORIENTATIONPRESERVED
ayarlayı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 olarakMM_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 veSetViewportExt
ü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 veSetViewportExt
ü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_LOMETRIC
ve 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_ISOTROPIC
değiştirir.
Örnek
örneğine CView::OnPrepareDC
bakı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 crColor
belirtilen 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 SetPixel
belirlemek 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
WINDING
olabilir. 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, renginR2_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, renginR2_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, renginR2_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 HALFTONE aynı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_ORSCANS
olabilirSTRETCH_ANDSCANS
STRETCH_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şlevineTextOut
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_TEXT
nCharExtra
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::OnCtlColor
bakı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 SetTextJustification
kullanı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
SetViewportExt
gerekir.
Örnek
örneğine CView::OnPrepareDC
bakı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::OnPrepareDC
bakı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
SetViewportExt
gerekir.
Örnek
örneğine CView::OnPrepareDC
bakı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 SetWorldTransform
sarmalar.
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 , SetViewportOrg
ve SetWindowExt
gibi SetMapMode
CDC ö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
StartPage
ve 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::StartDoc
bakı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.NOTSRCERASE
Boole or işlecini kullanarak hedef ve kaynak bit eşlemleri birleştirmenin sonucunu tersine çevirir.PATCOPY
Deseni hedef bit eşlemine kopyalar.PATINVERT
Boole XOR işlecini kullanarak hedef bit eşlemi desenle birleştirir.PATPAINT
Boole 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.SRCINVERT
Boole 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 SetStretchBltMode
ayarlanı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
, nSrcWidth
ve nSrcHeight
parametreleri, sol üst köşeyi ve kaynak dikdörtgenin boyutlarını tanımlar. x
, y
, nWidth
ve 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 StretchBlt
belirlemek 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 lpszString
iş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 nTabPositions
belirtilen 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 nTabOrigin
belirtilen 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 TabbedTextOut
ve 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 TextOut
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 TextOut
ve y
parametrelerini yoksayarx
.
Örnek
örneğine CDC::BeginPath
bakı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